1. 问题
redis集群是如何组建的,新的节点如何加入集群
2. 了解命令meet
1) 首先节点各自独立启动,会选择以集群的方式启动
2)该节点通过meet邀请其他节点加入集群
3. 实现
通过向节点A发送cluster meet命令,客户端可以让接受命令的节点A将另一个节点B添加到集群中
cluster meet <ip> <port>
1) 节点A在集群中
2)客户端向节点A发送cluster meet命令
3) 节点A会为节点B创建一个clusterNode结构 ,并添加到自己的集群状态clusterState.nodes结构中
4) 节点A根据ip和端口,向节点B发送一条meet 消息
5) 节点B收到meet消息,为节点A创建一个clusterNode结构,并加入自己的clusterState中nodes字典中
6) 节点B向节点A返回PONG
7) 节点A收到PONG消息,并回复一条PING消息,握手结束
8) 节点A会将节点B的消息通过Gossip协议传播给集群中的其他节点,让其他节点也与节点B握手,最终,节点B被所有节点认识。