删除策略(针对有时限的key):到期立即删除,惰性删除(再次被访问时发现过期再删除),定时删除(执行删除时间有限,每次就执行一段时间的删除操作,而立即删除如果出现大规模过期,会给cpu造成压力;惰性删除会浪费大量内存空间;定时删除是一种这种方式)
淘汰策略(逐出算法)【分配内存占满,无可删除的了,有新的加入缓存】:报错、随机删除一个、最近最少使用的、随机删除有过期时间限定的、淘汰将要过期
主从复制原理(细节):slave刚启动先向master发起全量同步,master执行bgsave生成全量快照发给slave,后续进行增量同步,将每次的执行操作发给slave执行。
主从模式:只能实现数据容灾恢复,仍然有单点故障
哨兵模式:故障转移期间不可用,一般小公司使用较多
集群中:某组的master故障,只是那个组在故障转移时不可用,其他的master组无影响;槽位、扩容、缩容、槽位转移
redis-cli客户端的方式可以通过重定向的方式实现在Amaster上操作Bmaster上的数据;
java中的jedis操作集群时,却不能使用重定向,而是通过先发一个命令cluster node命令获取所有集群节点的槽位信息,维护一个槽位到jedisPool的映射关系Map<槽位,jedisPool>(同一组master的槽位映射的jedisPool是同一个),每次发送消息时计算(CRC16算法得到的值%16384=槽位值)key的对应槽位,找到对应的jedisPool进行数据操作,如果运行中出现槽位被转移的情况,在操作数据是会发生异常,捕获到相应异常后重新获取集群节点槽位信息然后计算槽位与jedisPool的映射关系;
16384=2的14次方
500

被折叠的 条评论
为什么被折叠?



