随笔分类 - Redis
摘要:LRU Least Recently Used的缩写 即最近最少使用,在页面置换和缓存过期key的淘汰中有用到 维持了一个map存储每个节点,另外维持了一个双端列表,来实现删除和插入操作 基本结构: type LinkNode struct { key, val int pre, next *Lin
阅读全文
摘要:布隆过滤器: 是一个很长的二进制向量和一系列随机映射函数。布隆过滤器可以用于检索一个元素是否在一个集合中。它的优点是空间效率和查询时间都远远超过一般的算法,缺点是有一定的误识别率和删除困难。布隆过滤器解决了快速的检索一个元素是否在一个较大的元素列表之中的问题,通常用于缓存穿透,爬虫的爬取链接去重以及
阅读全文
摘要:Redis快速的原因: 1.redis是基于内存的,内存的读写速度非常快; 2.redis是单线程的,省去了很多上下文切换线程的时间; 3.redis使用多路复用技术,可以处理并发的连接。非阻塞IO 内部实现采用epoll,采用了epoll+自己实现的简单的事件框架。epoll中的读、写、关闭、连接
阅读全文
摘要:redis 批量删除某个前缀key redis-cli -h XXX -p 6379 -a password --scan --pattern 'bizsrv_nftoffline_curdata_*' | xargs redis-cli -h xxxxx -p 6379 -a password d
阅读全文
摘要:redis集群所要解决的问题: 高可用问题,删除添加节点,只需要重新分配槽就可以了,redis可以将数据自动切分(split)到多个节点,当集群中的一部分节点失效或者无法进行通讯时, 仍然可以继续处理命令请求的能力。 并发性能问题,首先我们集群的每一个master节点都设置了1到N个从节点,然后它自
阅读全文
摘要:Redis集群的主从复制 在redis主从复制中,如果某个节点挂掉了,需要我们去写手动写脚本,来时转移节点。 Redis Sentinel的功能:对Redis节点进行监控,故障判断,故障转移,故障通知 同时多个sentinel运行,即使一个sentinel进程运行异常,还有别的sentinel继续运
阅读全文
摘要:redis内存模型: set hello world redis作为非关系型数据库,以键值对的方式存储数据,一个键值对就是一个dictEntry,dictEntry存储了指向key和value的指针,next指向下一个dictEntry。 redisObject是用来存储value的,type用来表
阅读全文
摘要:通过连接池的方式实现查询优化 使用普通jedis对象和jedis连接池之间的差别 关于Redis中比较耗时的命令,禁止在线上环境使用 keys、sort,exists等命令 keys [pattern]模式查询 O(n) 禁用 通过scan模式查询 SCAN cursor [MATCH patter
阅读全文
摘要:主从复制配置: 在 slave 上: slaveof ip port 就可以将从节点复制到主节点上面 slaveof no one 这个slave节点不能成为任何节点的从节点 全量复制: 在主节点向从节点复制时,除了生成当前RDB文件,从节点通过这个RDB文件来实现复制,同样在主节点生成这个RDB文
阅读全文
摘要:Redis的并发竞争问题如何解决? Redis为单进程单线程模式,采用队列模式将并发访问变为串行访问。Redis本身没有锁的概念,Redis对于多个客户端连接并不存在竞争,但是在Jedis客户端对Redis进行并发访问时会发生连接超时、数据转换错误、阻塞、客户端关闭连接等问题,这些问题均是由于客户端
阅读全文
摘要:热点key,大key,过期key删除策略: 过期key的删除策略: 1、定时删除:在设置key的过期时间的同时,为该key创建一个定时器,让定时器在key的过期时间来临时,对key进行删除 优点:保证内存被尽快释放 缺点: 1.若过期key很多,删除这些key会占用很多的CPU时间,在CPU时间紧张
阅读全文