redis3.x集羣-添加新節點到集羣中

1.新增一個redis,更改端口號爲7006,同樣放到7006文件夾中。

[root@server redisCluster]#mkdir 7006

[root@server redisCluster]# cp./7000/7000.conf  ./7006/7006.conf

[root@server redisCluster]#vi  ./7006/7006.conf

2.啓動該redis節點服務。

# redis-server ./7006/7006.conf

3.查看redis服務是否啓動。

ps -ef|grep redis

[root@server redisCluster]# ps -ef|grepredis

root      1965    1  0 23:51 ?        00:00:00 redis-server192.168.8.150:7006 [cluster]

root      1970 2954  0 23:52 pts/0    00:00:00 grep redis

root      3537    1  0 Dec29 ?        00:04:14 redis-server192.168.8.150:7000 [cluster]

root      3550    1  0 Dec29 ?        00:04:18 redis-server192.168.8.150:7001 [cluster]

root      3562    1  0 Dec29 ?        00:04:18 redis-server192.168.8.150:7002 [cluster]

root      3575    1  0 Dec29 ?        00:04:17 redis-server192.168.8.150:7003 [cluster]

root      3587    1  0 Dec29 ?        00:04:10 redis-server192.168.8.150:7004 [cluster]

root      3654    1  0 Dec29 ?        00:04:15 redis-server 192.168.8.150:7005[cluster]

4.啓動完成之後,進入redis安裝目錄下src目錄下輸入增加節點命令。

# cd redis-3.2.9/src/

# ./redis-trib.rb add-node 192.168.8.150:7006 192.168.8.150:7000

執行之後,成功提示:

>>> Adding node192.168.8.150:7006 to cluster 192.168.8.150:7000

>>> Performing ClusterCheck (using node 192.168.8.150:7000)

S: b15e99ebcbcffc1f221412716ee33b03c45a3e3b192.168.8.150:7000

   slots: (0 slots) slave

   replicatese4922caef55cca4793c16a1767c42602ca8cdb3b

M:4c8f74d896f0b550ae41211e04d5d4fbe44b2bd3 192.168.8.150:7001

   slots:5461-10922 (5462 slots) master

   1 additional replica(s)

M:7e21d69e8038185ea0a419fccfdeed99e7a6fdcb 192.168.8.150:7005

   slots:10923-16383 (5461 slots) master

   1 additional replica(s)

S:68f45e1b0c4832b6681565a8ddfcdb5195b7b1bd 192.168.8.150:7004

   slots: (0 slots) slave

   replicates 4c8f74d896f0b550ae41211e04d5d4fbe44b2bd3

M:e4922caef55cca4793c16a1767c42602ca8cdb3b 192.168.8.150:7003

   slots:0-5460 (5461 slots) master

   1 additional replica(s)

S:5289466e00cdb535512a3d4d4208b619f3313878 192.168.8.150:7002

   slots: (0 slots) slave  replicates 7e21d69e8038185ea0a419fccfdeed99e7a6fdcb

[OK]All nodes agree about slots configuration.

>>> Check for openslots...

>>> Check slotscoverage...

[OK]All16384 slots covered.

>>>Send CLUSTER MEET to node 192.168.8.150:7006 to make it join the cluster.

[OK] New node added correctly.

加入成功。

5. 使用redis-trib程序,將集羣中的某些哈希槽移動到新節點裏,這個新節點就成爲真正的主節點了,還是在src目錄下執行命令對集羣中的哈希槽進行移動。

# cd redis-3.2.9/src/

# ./redis-trib.rb reshard 192.168.8.150:7000

執行後信息如下:

 [root@server src]# ./redis-trib.rb reshard192.168.8.150:7000

>>> Performing ClusterCheck (using node 192.168.8.150:7000)

S: b15e99ebcbcffc1f221412716ee33b03c45a3e3b192.168.8.150:7000

   slots: (0 slots) slave

   replicatese4922caef55cca4793c16a1767c42602ca8cdb3b

M:4c8f74d896f0b550ae41211e04d5d4fbe44b2bd3 192.168.8.150:7001

   slots:5461-10922 (5462 slots) master

   1 additional replica(s)

M: 7e21d69e8038185ea0a419fccfdeed99e7a6fdcb192.168.8.150:7005

   slots:10923-16383 (5461 slots) master

   1 additional replica(s)

S:68f45e1b0c4832b6681565a8ddfcdb5195b7b1bd 192.168.8.150:7004

   slots: (0 slots) slave

   replicates 4c8f74d896f0b550ae41211e04d5d4fbe44b2bd3

M:e4922caef55cca4793c16a1767c42602ca8cdb3b 192.168.8.150:7003

   slots:0-5460 (5461 slots) master

   1 additional replica(s)

M:82002358e7805a0151bcf63e6fb7255ad4b3d3a3192.168.8.150:7006

   slots: (0 slots) master

   0 additional replica(s)

S:5289466e00cdb535512a3d4d4208b619f3313878 192.168.8.150:7002

   slots: (0 slots) slave

   replicates7e21d69e8038185ea0a419fccfdeed99e7a6fdcb

[OK] All nodes agree about slotsconfiguration.

>>> Check for openslots...

>>> Check slotscoverage...

[OK] All 16384 slots covered.

How many slots do you

want to move (from 1 to 16384)? 1000(此處爲想移動多少個哈希槽)

What is the receiving node ID? 82002358e7805a0151bcf63e6fb7255ad4b3d3a3(此處爲移動到哪一個節點的id,應該爲加入的新節點的id)

Please enter all the source nodeIDs.

  Type 'all' to use all the nodes as sourcenodes for the hash slots.

 Type 'done' once you entered all the source nodes IDs.

Source node #1:all此處選擇all,全部使用並移動,表示從所有主節點中隨機轉移,湊夠1000個哈希槽)

提示信息爲,是否執行上述移動的計劃,當然是yes、、、

如果輸錯了或者選擇了no之後,就要重新執行移動。



輸入錯誤之後直接取消了上述所有操作

輸入yes之後執行,並轉移完成。



轉移成功後效果圖


使用命令查看主節點集羣的各個節點信息

命令如下

redis-cli -c -h 192.168.8.150 -p 7000 cluster nodes

操作後信息

[root@server src]# redis-cli -c -h 192.168.8.150 -p 7000 cluster nodes

4c8f74d896f0b550ae41211e04d5d4fbe44b2bd3192.168.8.150:7001master - 0 1514650927177 2connected 5795-10922

7e21d69e8038185ea0a419fccfdeed99e7a6fdcb192.168.8.150:7005master - 0 1514650926169 8connected 11256-16383

68f45e1b0c4832b6681565a8ddfcdb5195b7b1bd192.168.8.150:7004slave 4c8f74d896f0b550ae41211e04d5d4fbe44b2bd30 1514650927682 5 connected

e4922caef55cca4793c16a1767c42602ca8cdb3b192.168.8.150:7003master - 0 1514650927177 7connected 333-5460

b15e99ebcbcffc1f221412716ee33b03c45a3e3b192.168.8.150:7000 myself,slave e4922caef55cca4793c16a1767c42602ca8cdb3b0 0 1 connected

82002358e7805a0151bcf63e6fb7255ad4b3d3a3192.168.8.150:7006 master - 0 1514650926169 9 connected 0-332 5461-579410923-11255

5289466e00cdb535512a3d4d4208b619f3313878192.168.8.150:7002slave 7e21d69e8038185ea0a419fccfdeed99e7a6fdcb0 1514650927682 8 connected


6.如果添加的新節點作爲從節點,那麼就不必分配轉移哈希槽給它了。

操作:

1)再次創建一個新的端口號爲7007的redis服務



創建後的服務顯示圖

2)將新的redis節點加入集羣中,和上述步驟一樣

[root@server local]#cd /usr/local/redis-3.2.9/src/

[root@server src]# ./redis-trib.rb add-node 192.168.8.150:7007 192.168.8.150:7000

[OK] All nodes agree about slotsconfiguration.

>>> Check for openslots...

>>> Check slotscoverage...

[OK] All 16384 slots covered.

>>> Send CLUSTER MEETto node 192.168.8.150:7007 to make it join the cluster.

[OK] New node added correctly.

成功!

3)使用下面命令,將新加的7007節點成爲7006節點的從節點。

# redis-cli -c -h 192.168.8.150 -p 7007 cluster replicate 82002358e7805a0151bcf63e6fb7255ad4b3d3a3

注意,最後面加的是7006主節點的ID。



執行成功圖

成功。

3)輸入查看集羣信息命令查看各節點信息,驗證是否成功加入。

# redis-cli -c -h 192.168.8.150 -p 7000 cluster nodes



節點信息圖顯示7007位7006的從節點

成功成爲了7006的從節點。


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