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被所有節點認識。