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的從節點。

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容