第 17 章: 集群¶
节点¶
三个节点的握手过程。
clusterNode
结构的示例。
节点之间进行握手时的通信过程。
槽指派¶
图 17-9 展示了一个 slots
数组示例:
这个数组索引 0
至索引 7
上的二进制位的值都为 1
,
其余所有二进制位的值都为 0
,
这表示节点负责处理槽 0
至槽 7
。
图 17-10 展示了另一个 slots
数组示例:
这个数组索引 1
、 3
、 5
、 8
、 9
、 10
上的二进制位的值都为 1
,
而其余所有二进制位的值都为 0
,
这表示节点负责处理槽 1
、 3
、 5
、 8
、 9
、 10
。
节点之间互相传递槽指派信息的过程。
clusterState
结构的 slots
数组示例。
在集群中执行命令¶
在集群中执行命令时的判断过程。
MOVED
错误引发的转向过程。
集群节点为记录键所在槽而创建的跳跃表。
重新分片¶
将一个键从一个节点迁移到另一个节点的过程。
重新分片的整个过程。
ASK 错误¶
源节点判断是否需要向客户端发送 ASK
错误的整个过程。
importing_slots_from
结构以及 migrating_slots_to
结构的示例。
客户端根据 ASK
错误进行转向的过程。
节点判断是否执行客户端命令的过程。
复制与故障转移¶
Redis 集群对失效节点进行故障转移的过程。
节点的下线报告示例。
节点向集群广播 FAIL
消息。
消息¶
集群中的节点通过发送消息来将一个节点标记为下线的过程。
接收到 PUBLISH
命令的节点向集群中的其他节点发送 PUBLISH
消息。
PUBLISH
消息中包含的 clusterMsgDataPublish
结构示例。