节点,槽指派,命令执行,重新分片,转向,故障转移,消息
节点
一个redis集群中通常有多个节点组成,刚刚开始的时候每一个节点都是相互独立的,它们都是处于一个只包含自己的集合之中,然后各个节点之间需要通讯,所以用cluster meet <ip> <port> 进行握手,握手成功后,node节点集群中的所有节点都会创建相对应的节点。
启动服务器时候
通过cluster-enable选项的值为yes
是则开启服务器集群模式成为一个节点 否则的话开启服务器单机模式成为一个普通的redis服务器。
节点会继续使用所有在单机模式中使用的服务器组件。
节点仍然会继续使用redisServer结构进行保存服务器状态,使用redisClient保存客户端的状态,至于只有在集群模式才会使用到数据,节点将他们保存在cluster.h中 分别是clusterNode clusterLink clusterState结构
clusterNode结构保存了一个节点当前状态,比如说节点的创建时间,节点的名字,节点当前的配置元,节点的ip和端口号等等
clusterState结构是记录当前节点视角下,集群的所有状态,然后每一个节点都是用clusterNode保存的(包括主从节点)。
clusterState>clusterNode(存储在字典之中 名字对应节点)>clusterLink.
cluster meet