redis 5 cluster集羣增加節點動態擴容的步驟

redis 5的集羣支持在有負載的情況下增加節點動態擴容。

已有集羣爲6個節點127.0.0.1:7000 - 127.0.0.1:7005,3組主從節點。現要增加第4組主從節點127.0.0.1:7006,127.0.0.1:7007.

步驟如下:

1.創建一個新的主節點127.0.0.1:7006。命令裏需要指定一個已有節點以便於獲取集羣信息,本例是指定的127.0.0.1:7000。

redis-cli --cluster add-node 127.0.0.1:7006 127.0.0.1:7000

2.將127.0.0.1:7007創建爲127.0.0.1:7006的從節點。命令裏需要指定一個已有節點以便於獲取集羣信息,本例是指定的127.0.0.1:7000。因爲,集羣會自動爲從節點數最少的主節點創建從節點,所以這裏不需要指定主節點。

redis-cli --cluster add-node 127.0.0.1:7007 127.0.0.1:7000 --cluster-slave

當然也可以指定主節點

redis-cli --cluster add-node 127.0.0.1:7007 127.0.0.1:7000 --cluster-slave --cluster-master-id e44678abed249e22482559136bf45280fd3ac281

7006的node ID可以由如下命令獲取

[root@dev redis-cluster]# ./redis-cli -p 7006 cluster nodes | grep myself
e44678abed249e22482559136bf45280fd3ac281 127.0.0.1:7006@17006 myself,master - 0 1586936487000 0 connected

3. reshard slots. 因爲redis 5現在還不支持自動平衡slot,所以需要自行計算需要移動的slot數量,並手動執行命令。這個例子,需要從3組已有的主節點上各移動1365個slot到新的主節點127.0.0.1:7006,以達到均衡。

redis-cli --cluster reshard 127.0.0.1:7000 --cluster-from e1a033e07f0064e6400825b4ddbcd6680c032d10 --cluster-to e44678abed249e22482559136bf45280fd3ac281 --cluster-slots 1365 --cluster-yes

redis-cli --cluster reshard 127.0.0.1:7000 --cluster-from ad2f42a9068b6b7d11174f6770ae4d51e4f536d6 --cluster-to e44678abed249e22482559136bf45280fd3ac281 --cluster-slots 1365 --cluster-yes

redis-cli --cluster reshard 127.0.0.1:7000 --cluster-from dbf8c247a5657b7a78890becb94a22f3482f5eca --cluster-to e44678abed249e22482559136bf45280fd3ac281 --cluster-slots 1365 --cluster-yes

需要指出的是上述3條命令不能放在一個腳本里連續執行,需要間隔一定時間,否則集羣可能會報錯:

[ERR] Nodes don't agree about configuration!

4.reshard完成後,查看集羣狀態,可以看到127.0.0.1:7006作爲主節點存儲了3段slot分別是 0-1364 5461-6825 10923-12287

127.0.0.1:7000> cluster nodes
5ca679d3fa5606d8c247595fc4eca622e6ec962c 127.0.0.1:7004@17004 slave e1a033e07f0064e6400825b4ddbcd6680c032d10 0 1586938032000 5 connected
ad2f42a9068b6b7d11174f6770ae4d51e4f536d6 127.0.0.1:7003@17003 master - 0 1586938031000 8 connected 6826-10922
620320cd85531d16f9508cf4c55c283186b3febb 127.0.0.1:7001@17001 slave ad2f42a9068b6b7d11174f6770ae4d51e4f536d6 0 1586938031875 8 connected
dbf8c247a5657b7a78890becb94a22f3482f5eca 127.0.0.1:7005@17005 master - 0 1586938032375 7 connected 1365-5460
cbb1740c5affb7e1d688d8433a9c7df70e87ecd7 127.0.0.1:7000@17000 myself,slave dbf8c247a5657b7a78890becb94a22f3482f5eca 0 1586938031000 1 connected
391d622c24df9121b3c712c0d8a97ca985783ac3 127.0.0.1:7007@17007 slave e44678abed249e22482559136bf45280fd3ac281 0 1586938031000 9 connected
e44678abed249e22482559136bf45280fd3ac281 127.0.0.1:7006@17006 master - 0 1586938031574 9 connected 0-1364 5461-6825 10923-12287
e1a033e07f0064e6400825b4ddbcd6680c032d10 127.0.0.1:7002@17002 master - 0 1586938032375 3 connected 12288-16383

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章