1. 程式人生 > >redis3.x叢集-新增新節點到叢集中

redis3.x叢集-新增新節點到叢集中

1.新增一個redis,更改埠號為7006,同樣放到7006資料夾中。

[[email protected] redisCluster]#mkdir 7006

[[email protected] redisCluster]# cp./7000/7000.conf  ./7006/7006.conf

[[email protected] redisCluster]#vi  ./7006/7006.conf

2.啟動該redis節點服務。

# redis-server ./7006/7006.conf

3.檢視redis服務是否啟動。

ps -ef|grep redis

[[email protected] 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

執行後資訊如下:

 [[email protected] 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

操作後資訊

[[email protected] 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節點加入叢集中,和上述步驟一樣

[[email protected] local]#cd /usr/local/redis-3.2.9/src/

[[email protected] 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的從節點。