1.redis cluster集群是什么?
redis cluster集群是一个由多个主从节点群组成的分布式服务器群,它具有复制、高可用和分片特性。Redis cluster集群不需要sentinel哨兵也能完成节点移除和故障转移的功能。需要将每个节点设置成集群模式,这种集群模式没有中心节点,可水平扩展,据官方文档称可以线性扩展到1000节点。redis cluster集群的性能和高可用性均优于之前版本的哨兵模式,且集群配置非常简单
2.指派槽
查看crc16 算法算出key的槽位命令 cluster keyslot key
16384/3 0-5461 5462-10922 10923-16383
16384/4 4096
cluster addslots slot(槽位下标)
3.缩容集群
1.故障发现: 通过ping/pong消息实现故障发现(不依赖sentinel)
2.故障恢复
检查资格
每个从节点检查与主节点的断开时间
超过配置的cluster-node-timeout * cluster-replica-validity-factor 时间取消资格选择偏移量最大的替换主节点
- 当前从节点取消复制变为主节点(slaveof no one)
- 撤销以前主节点的槽位,给新的主节点
- 向集群广播消息,表明已经替换了故障节点
//todo crc16算法