Redis高可用之集群模式

65 阅读1分钟

Redis集群模式如图所示

1、节点开始是各自独立的,可以通过cluster meet+ip地址+端口号把某个节点加入当前节点

2、集群会对节点进行分片,范围是共16384个糟,每个节点都会保存16384个数组槽位,对于是属于自己范围的槽位设置为1,其他节点的槽位设置为0,并且槽位有指向具体的节点

3、当发送一个命令时,会对该节点进行CRC16(key)&16384计算出槽位,判断出是哪个节点处理的,如果不是当前节点的槽位,则返回moved错误并跳转到具体的节点

4、扩容时,会进行重新分片,如果客户端发送请求,计算到某个key不在当前节点了(该节点的槽位数据发生迁移),则会返回ask错误并且指引用户跳转到具体的节点(内部槽位属性记录迁移标识)

5、节点之间每隔1秒会相互发送ping命令检测节点是否下线,如果下线则会广播给其他节点确认,同时对主节点进行故障转移,选取新的主节点,并进行复制