亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > Redis > 正文

Redis Cluster添加、刪除的完整操作步驟

2020-10-28 21:35:33
字體:
來源:轉載
供稿:網友

前言

最近學習了Redis,發現Redis還是挺好玩的,今天測試了集群的添加、刪除節點、重分配slot等。更深入的理解redis的游戲規則。步驟繁多,但是詳細,話不多說了,來一起看看詳細的介紹吧。

環境解釋:

我是在一臺Centos 6.9上測試的,各個redis節點以端口號區分。文中針對各個redis,我只是以端口號代表。

~~~~Master Node~~~~~172.16.32.116:7000172.16.32.116:7001172.16.32.116:7002~~~~Slave Node~~~~~172.16.32.116:8000172.16.32.116:8001172.16.32.116:8002~~~~用來折騰的Node~~~~~172.16.32.116:9000172.16.32.116:9001

1. 創建redis集群

注:更多redis集群創建,請參閱

Redis Cluster集群部署搭建            

# ./redis-trib.rb create --replicas 1 172.16.32.116:7000 172.16.32.116:7001 172.16.32.116:7002 172.16.32.116:8000 172.16.32.116:8001 172.16.32.116:8002>>> Creating cluster>>> Performing hash slots allocation on 6 nodes...Using 3 masters:172.16.32.116:7000172.16.32.116:7001172.16.32.116:7002Adding replica 172.16.32.116:8000 to 172.16.32.116:7000Adding replica 172.16.32.116:8001 to 172.16.32.116:7001Adding replica 172.16.32.116:8002 to 172.16.32.116:7002M: a0b91f48e933c1f1d427c54917ce970bd25d29f8 172.16.32.116:7000 slots:0-5460 (5461 slots) masterM: 273107e5ac994d675749be0979556e761274bb93 172.16.32.116:7001 slots:5461-10922 (5462 slots) masterM: 88fe075375295b59eabe69fa1438ed7c7c314f43 172.16.32.116:7002 slots:10923-16383 (5461 slots) masterS: aeb684429d220c0fd1392574d193cc1ae7577782 172.16.32.116:8000 replicates a0b91f48e933c1f1d427c54917ce970bd25d29f8S: a96cad95dca2a8e1e0302bff4f835260d92e3d31 172.16.32.116:8001 replicates 273107e5ac994d675749be0979556e761274bb93S: 3d27f60a1cc4d9c8f09aca928b03f0e083722d3b 172.16.32.116:8002 replicates 88fe075375295b59eabe69fa1438ed7c7c314f43Can I set the above configuration? (type 'yes' to accept): yes>>> Nodes configuration updated>>> Assign a different config epoch to each node>>> Sending CLUSTER MEET messages to join the clusterWaiting for the cluster to join...>>> Performing Cluster Check (using node 172.16.32.116:7000)M: a0b91f48e933c1f1d427c54917ce970bd25d29f8 172.16.32.116:7000 slots:0-5460 (5461 slots) masterM: 273107e5ac994d675749be0979556e761274bb93 172.16.32.116:7001 slots:5461-10922 (5462 slots) masterM: 88fe075375295b59eabe69fa1438ed7c7c314f43 172.16.32.116:7002 slots:10923-16383 (5461 slots) masterM: aeb684429d220c0fd1392574d193cc1ae7577782 172.16.32.116:8000 slots: (0 slots) master replicates a0b91f48e933c1f1d427c54917ce970bd25d29f8M: a96cad95dca2a8e1e0302bff4f835260d92e3d31 172.16.32.116:8001 slots: (0 slots) master replicates 273107e5ac994d675749be0979556e761274bb93M: 3d27f60a1cc4d9c8f09aca928b03f0e083722d3b 172.16.32.116:8002 slots: (0 slots) master replicates 88fe075375295b59eabe69fa1438ed7c7c314f43[OK] All nodes agree about slots configuration.>>> Check for open slots...>>> Check slots coverage...[OK] All 16384 slots covered.

2. 檢查集群狀態

# ./redis-trib.rb check 172.16.32.116:7000>>> Performing Cluster Check (using node 172.16.32.116:7000)M: a0b91f48e933c1f1d427c54917ce970bd25d29f8 172.16.32.116:7000 slots:0-5460 (5461 slots) master 1 additional replica(s)M: 88fe075375295b59eabe69fa1438ed7c7c314f43 172.16.32.116:7002 slots:10923-16383 (5461 slots) master 1 additional replica(s)M: 273107e5ac994d675749be0979556e761274bb93 172.16.32.116:7001 slots:5461-10922 (5462 slots) master 1 additional replica(s)S: 3d27f60a1cc4d9c8f09aca928b03f0e083722d3b 172.16.32.116:8002 slots: (0 slots) slave replicates 88fe075375295b59eabe69fa1438ed7c7c314f43S: a96cad95dca2a8e1e0302bff4f835260d92e3d31 172.16.32.116:8001 slots: (0 slots) slave replicates 273107e5ac994d675749be0979556e761274bb93S: aeb684429d220c0fd1392574d193cc1ae7577782 172.16.32.116:8000 slots: (0 slots) slave replicates a0b91f48e933c1f1d427c54917ce970bd25d29f8[OK] All nodes agree about slots configuration.>>> Check for open slots...>>> Check slots coverage...[OK] All 16384 slots covered.

~~~~~~~~~~~~~~~~~~~~~~~~~~~添加節點~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

3. 添加新節點redis-trib.rb add-node 新增節點名  原集群節點名

# ./redis-trib.rb add-node 172.16.32.116:9000 172.16.32.116:7000>>> Adding node 172.16.32.116:9000 to cluster 172.16.32.116:7000>>> Performing Cluster Check (using node 172.16.32.116:7000)M: a0b91f48e933c1f1d427c54917ce970bd25d29f8 172.16.32.116:7000 slots:0-5460 (5461 slots) master 1 additional replica(s)M: 88fe075375295b59eabe69fa1438ed7c7c314f43 172.16.32.116:7002 slots:10923-16383 (5461 slots) master 1 additional replica(s)M: 273107e5ac994d675749be0979556e761274bb93 172.16.32.116:7001 slots:5461-10922 (5462 slots) master 1 additional replica(s)S: 3d27f60a1cc4d9c8f09aca928b03f0e083722d3b 172.16.32.116:8002 slots: (0 slots) slave replicates 88fe075375295b59eabe69fa1438ed7c7c314f43S: a96cad95dca2a8e1e0302bff4f835260d92e3d31 172.16.32.116:8001 slots: (0 slots) slave replicates 273107e5ac994d675749be0979556e761274bb93S: aeb684429d220c0fd1392574d193cc1ae7577782 172.16.32.116:8000 slots: (0 slots) slave replicates a0b91f48e933c1f1d427c54917ce970bd25d29f8[OK] All nodes agree about slots configuration.>>> Check for open slots...>>> Check slots coverage...

4. 查看當前集群狀態,9000是一個空的Master

# ./redis-cli -p 9000 cluster nodesa0b91f48e933c1f1d427c54917ce970bd25d29f8 172.16.32.116:7000 master - 0 1505321254767 1 connected 0-5460273107e5ac994d675749be0979556e761274bb93 172.16.32.116:7001 master - 0 1505321250759 2 connected 5461-1092288fe075375295b59eabe69fa1438ed7c7c314f43 172.16.32.116:7002 master - 0 1505321251761 3 connected 10923-163833d27f60a1cc4d9c8f09aca928b03f0e083722d3b 172.16.32.116:8002 slave 88fe075375295b59eabe69fa1438ed7c7c314f43 0 1505321255769 3 connectedaeb684429d220c0fd1392574d193cc1ae7577782 172.16.32.116:8000 slave a0b91f48e933c1f1d427c54917ce970bd25d29f8 0 1505321253765 1 connecteda96cad95dca2a8e1e0302bff4f835260d92e3d31 172.16.32.116:8001 slave 273107e5ac994d675749be0979556e761274bb93 0 1505321256771 2 connected

5. 為9000分配slot, redis的solt是固定的,就16384個,只能從其他節點獲取slot,然后分配到9000

# ./redis-trib.rb reshard 172.16.32.116:9000>>> Performing Cluster Check (using node 172.16.32.116:9000)M: 364ae8322ab2627e25b05d45b702448c74afad10 172.16.32.116:9000 slots: (0 slots) master 0 additional replica(s)M: a0b91f48e933c1f1d427c54917ce970bd25d29f8 172.16.32.116:7000 slots:0-5460 (5461 slots) master 1 additional replica(s)M: 273107e5ac994d675749be0979556e761274bb93 172.16.32.116:7001 slots:5461-10922 (5462 slots) master 1 additional replica(s)S: 3d27f60a1cc4d9c8f09aca928b03f0e083722d3b 172.16.32.116:8002 slots: (0 slots) slave replicates 88fe075375295b59eabe69fa1438ed7c7c314f43S: aeb684429d220c0fd1392574d193cc1ae7577782 172.16.32.116:8000 slots: (0 slots) slave replicates a0b91f48e933c1f1d427c54917ce970bd25d29f8M: 88fe075375295b59eabe69fa1438ed7c7c314f43 172.16.32.116:7002 slots:10923-16383 (5461 slots) master 1 additional replica(s)S: a96cad95dca2a8e1e0302bff4f835260d92e3d31 172.16.32.116:8001 slots: (0 slots) slave replicates 273107e5ac994d675749be0979556e761274bb93[OK] All nodes agree about slots configuration.>>> Check for open slots...>>> Check slots coverage...[OK] All 16384 slots covered.How many slots do you want to move (from 1 to 16384)? What is the receiving node ID? 364ae8322ab2627e25b05d45b702448c74afad10 Please enter all the source node IDs. Type 'all' to use all the nodes as source nodes for the hash slots. Type 'done' once you entered all the source nodes IDs.Source node #1:all Ready to move 300 slots. Source nodes: M: a0b91f48e933c1f1d427c54917ce970bd25d29f8 172.16.32.116:7000 slots:0-5460 (5461 slots) master 1 additional replica(s) M: 273107e5ac994d675749be0979556e761274bb93 172.16.32.116:7001 slots:5461-10922 (5462 slots) master 1 additional replica(s) M: 88fe075375295b59eabe69fa1438ed7c7c314f43 172.16.32.116:7002 slots:10923-16383 (5461 slots) master 1 additional replica(s) Destination node: M: 364ae8322ab2627e25b05d45b702448c74afad10 172.16.32.116:9000 slots: (0 slots) master 0 additional replica(s) Resharding plan: Moving slot 5461 from 273107e5ac994d675749be0979556e761274bb93 Moving slot 5469 from 273107e5ac994d675749be0979556e761274bb93Do you want to proceed with the proposed reshard plan (yes/no)? yesMoving slot 5461 from 172.16.32.116:7001 to 172.16.32.116:9000:

6. 可以看到,9000已經分配到的slot是0-98 5461-5561 10923-11021

# ./redis-cli -p 9000 cluster nodesa0b91f48e933c1f1d427c54917ce970bd25d29f8 172.16.32.116:7000 master - 0 1505324905062 1 connected 99-5460273107e5ac994d675749be0979556e761274bb93 172.16.32.116:7001 master - 0 1505324910075 2 connected 5562-10922364ae8322ab2627e25b05d45b702448c74afad10 172.16.32.116:9000 myself,master - 0 0 7 connected 0-98 5461-5561 10923-110213d27f60a1cc4d9c8f09aca928b03f0e083722d3b 172.16.32.116:8002 slave 88fe075375295b59eabe69fa1438ed7c7c314f43 0 1505324908070 3 connectedaeb684429d220c0fd1392574d193cc1ae7577782 172.16.32.116:8000 slave a0b91f48e933c1f1d427c54917ce970bd25d29f8 0 1505324911077 1 connected88fe075375295b59eabe69fa1438ed7c7c314f43 172.16.32.116:7002 master - 0 1505324902057 3 connected 11022-16383a96cad95dca2a8e1e0302bff4f835260d92e3d31 172.16.32.116:8001 slave 273107e5ac994d675749be0979556e761274bb93 0 1505324909073 2 connected

~~~~~~~~~~~~~~~~~~~~~~~~~~~將9000變為slave~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

7. 希望將9000變成7000的slave,但是由于有slot,執行失敗,需要先轉移slot

# redis-cli -c -p 9000 cluster replicate a0b91f48e933c1f1d427c54917ce970bd25d29f8(error) ERR To set a master the node must be empty and without assigned slots.

8. 刪除節點也是不可以的,總之,只要上面有slot。redis是不會讓你刪除的,而且需要人工介入,rebalance這些slot之后才行

# ./redis-trib.rb del-node 172.16.32.116:9000 364ae8322ab2627e25b05d45b702448c74afad10>>> Removing node 364ae8322ab2627e25b05d45b702448c74afad10 from cluster 172.16.32.116:9000[ERR] Node 172.16.32.116:9000 is not empty! Reshard data away and try again.

9.重新分配9000的slot到7000上

# ./redis-trib.rb reshard 172.16.32.116:9000 <<<<<<重新分配slot>>> Performing Cluster Check (using node 172.16.32.116:9000)M: 364ae8322ab2627e25b05d45b702448c74afad10 172.16.32.116:9000 slots:0-98,5461-5561,10923-11021 (299 slots) master 0 additional replica(s)M: a0b91f48e933c1f1d427c54917ce970bd25d29f8 172.16.32.116:7000 slots:99-5460 (5362 slots) master 1 additional replica(s)M: 273107e5ac994d675749be0979556e761274bb93 172.16.32.116:7001 slots:5562-10922 (5361 slots) master 1 additional replica(s)S: 3d27f60a1cc4d9c8f09aca928b03f0e083722d3b 172.16.32.116:8002 slots: (0 slots) slave replicates 88fe075375295b59eabe69fa1438ed7c7c314f43S: aeb684429d220c0fd1392574d193cc1ae7577782 172.16.32.116:8000 slots: (0 slots) slave replicates a0b91f48e933c1f1d427c54917ce970bd25d29f8M: 88fe075375295b59eabe69fa1438ed7c7c314f43 172.16.32.116:7002 slots:11022-16383 (5362 slots) master 1 additional replica(s)S: a96cad95dca2a8e1e0302bff4f835260d92e3d31 172.16.32.116:8001 slots: (0 slots) slave replicates 273107e5ac994d675749be0979556e761274bb93[OK] All nodes agree about slots configuration.>>> Check for open slots...>>> Check slots coverage...[OK] All 16384 slots covered.How many slots do you want to move (from 1 to 16384)? 300  <<<9000節點全部需要遷移的節點What is the receiving node ID? a0b91f48e933c1f1d427c54917ce970bd25d29f8 <<<<<<7000的IDPlease enter all the source node IDs. Type 'all' to use all the nodes as source nodes for the hash slots. Type 'done' once you entered all the source nodes IDs.Source node #1:364ae8322ab2627e25b05d45b702448c74afad10 <<<<<<9000的IDSource node #2:doneReady to move 300 slots. Source nodes: M: 364ae8322ab2627e25b05d45b702448c74afad10 172.16.32.116:9000 <<<<<<Source nodes slots:0-98,5461-5561,10923-11021 (299 slots) master 0 additional replica(s) Destination node: M: a0b91f48e933c1f1d427c54917ce970bd25d29f8 172.16.32.116:7000 <<<<<<<Destination node slots:99-5460 (5362 slots) master 1 additional replica(s) Resharding plan: Moving slot 0 from 364ae8322ab2627e25b05d45b702448c74afad10......... Moving slot 11021 from 364ae8322ab2627e25b05d45b702448c74afad10Do you want to proceed with the proposed reshard plan (yes/no)? yesMoving slot 0 from 172.16.32.116:9000 to 172.16.32.116:7000:Moving slot 1 from 172.16.32.116:9000 to 172.16.32.116:7000:........

10. 查詢,可以看到9000已經沒有slot了

# ./redis-cli -p 9000 cluster nodesa0b91f48e933c1f1d427c54917ce970bd25d29f8 172.16.32.116:7000 master - 0 1505328938056 8 connected 0-5561 10923-11021273107e5ac994d675749be0979556e761274bb93 172.16.32.116:7001 master - 0 1505328939059 2 connected 5562-10922364ae8322ab2627e25b05d45b702448c74afad10 172.16.32.116:9000 myself,master - 0 0 7 connected3d27f60a1cc4d9c8f09aca928b03f0e083722d3b 172.16.32.116:8002 slave 88fe075375295b59eabe69fa1438ed7c7c314f43 0 1505328936053 3 connectedaeb684429d220c0fd1392574d193cc1ae7577782 172.16.32.116:8000 slave a0b91f48e933c1f1d427c54917ce970bd25d29f8 0 1505328933046 8 connected88fe075375295b59eabe69fa1438ed7c7c314f43 172.16.32.116:7002 master - 0 1505328937054 3 connected 11022-16383a96cad95dca2a8e1e0302bff4f835260d92e3d31 172.16.32.116:8001 slave 273107e5ac994d675749be0979556e761274bb93 0 1505328934049 2 connected

11. 再次執行命令,將9000變成7000的slave,成功

# redis-cli -c -p 9000 cluster replicate a0b91f48e933c1f1d427c54917ce970bd25d29f8OK

12. 查看狀態,9000已經成為7000的slave

# ./redis-cli -p 9000 cluster nodesa0b91f48e933c1f1d427c54917ce970bd25d29f8 172.16.32.116:7000 master - 0 1505329564286 8 connected 0-5561 10923-11021273107e5ac994d675749be0979556e761274bb93 172.16.32.116:7001 master - 0 1505329561281 2 connected 5562-10922364ae8322ab2627e25b05d45b702448c74afad10 172.16.32.116:9000 myself,slave a0b91f48e933c1f1d427c54917ce970bd25d29f8 0 0 7 connected <<<<<<<<<<<<<<3d27f60a1cc4d9c8f09aca928b03f0e083722d3b 172.16.32.116:8002 slave 88fe075375295b59eabe69fa1438ed7c7c314f43 0 1505329558274 3 connectedaeb684429d220c0fd1392574d193cc1ae7577782 172.16.32.116:8000 slave a0b91f48e933c1f1d427c54917ce970bd25d29f8 0 1505329554266 8 connected88fe075375295b59eabe69fa1438ed7c7c314f43 172.16.32.116:7002 master - 0 1505329563285 3 connected 11022-16383a96cad95dca2a8e1e0302bff4f835260d92e3d31 172.16.32.116:8001 slave 273107e5ac994d675749be0979556e761274bb93 0 1505329562283 2 connected

13. 刪除節點9000,成功刪除

# ./redis-trib.rb del-node 172.16.32.116:9000 364ae8322ab2627e25b05d45b702448c74afad10>>> Removing node 364ae8322ab2627e25b05d45b702448c74afad10 from cluster 172.16.32.116:9000>>> Sending CLUSTER FORGET messages to the cluster...>>> SHUTDOWN the node.

14. 連接9000,發現已經shutdown,無法連接

# ./redis-cli -p 9000 cluster nodesCould not connect to Redis at 127.0.0.1:9000: Connection refusedCould not connect to Redis at 127.0.0.1:9000: Connection refused

15. 查看集群狀態,9000已經不見了

# ./redis-cli -p 7000 cluster nodes88fe075375295b59eabe69fa1438ed7c7c314f43 172.16.32.116:7002 master - 0 1505329693835 3 connected 11022-16383273107e5ac994d675749be0979556e761274bb93 172.16.32.116:7001 master - 0 1505329694837 2 connected 5562-10922a0b91f48e933c1f1d427c54917ce970bd25d29f8 172.16.32.116:7000 myself,master - 0 0 8 connected 0-5561 10923-110213d27f60a1cc4d9c8f09aca928b03f0e083722d3b 172.16.32.116:8002 slave 88fe075375295b59eabe69fa1438ed7c7c314f43 0 1505329696841 6 connecteda96cad95dca2a8e1e0302bff4f835260d92e3d31 172.16.32.116:8001 slave 273107e5ac994d675749be0979556e761274bb93 0 1505329695840 5 connectedaeb684429d220c0fd1392574d193cc1ae7577782 172.16.32.116:8000 slave a0b91f48e933c1f1d427c54917ce970bd25d29f8 0 1505329692833 8 connected

~~~~~~~~~~~~~~~~~~~~~~~~~~~再次啟動9000,發現不同~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

16. 再次啟動9000,發現一個有意思的事情。上面檢查7000,集群已經沒有9000了

# ./redis-cli -p 7000 cluster nodes88fe075375295b59eabe69fa1438ed7c7c314f43 172.16.32.116:7002 master - 0 1505329898241 3 connected 11022-16383273107e5ac994d675749be0979556e761274bb93 172.16.32.116:7001 master - 0 1505329899242 2 connected 5562-10922a0b91f48e933c1f1d427c54917ce970bd25d29f8 172.16.32.116:7000 myself,master - 0 0 8 connected 0-5561 10923-110213d27f60a1cc4d9c8f09aca928b03f0e083722d3b 172.16.32.116:8002 slave 88fe075375295b59eabe69fa1438ed7c7c314f43 0 1505329902249 6 connecteda96cad95dca2a8e1e0302bff4f835260d92e3d31 172.16.32.116:8001 slave 273107e5ac994d675749be0979556e761274bb93 0 1505329901246 5 connectedaeb684429d220c0fd1392574d193cc1ae7577782 172.16.32.116:8000 slave a0b91f48e933c1f1d427c54917ce970bd25d29f8 0 1505329900244 8 connected

17. 但是查看9000,確仍然能看到整個集群的信息。

說明,在刪除節點的過程,只是在原有集群中刪除9000的信息。但是9000自身的信息并沒有被刪除,依然保留全部的信息,只是9000實例被關閉而已。

# ./redis-cli -p 9000 cluster nodesa0b91f48e933c1f1d427c54917ce970bd25d29f8 172.16.32.116:7000 master - 0 1505329902003 8 connected 0-5561 10923-11021273107e5ac994d675749be0979556e761274bb93 172.16.32.116:7001 master - 0 1505329903006 2 connected 5562-109223d27f60a1cc4d9c8f09aca928b03f0e083722d3b 172.16.32.116:8002 slave 88fe075375295b59eabe69fa1438ed7c7c314f43 0 1505329906013 3 connecteda96cad95dca2a8e1e0302bff4f835260d92e3d31 172.16.32.116:8001 slave 273107e5ac994d675749be0979556e761274bb93 0 1505329908019 2 connectedaeb684429d220c0fd1392574d193cc1ae7577782 172.16.32.116:8000 slave a0b91f48e933c1f1d427c54917ce970bd25d29f8 0 1505329904008 8 connected364ae8322ab2627e25b05d45b702448c74afad10 172.16.32.116:9000 myself,slave a0b91f48e933c1f1d427c54917ce970bd25d29f8 0 0 7 connected88fe075375295b59eabe69fa1438ed7c7c314f43 172.16.32.116:7002 master - 0 1505329907016 3 connected 11022-16383

18. 而9000的全部信息,是記錄在自身目錄的nodes.conf中

# more nodes.confa0b91f48e933c1f1d427c54917ce970bd25d29f8 172.16.32.116:7000 master - 0 1505329544244 8 connected 0-5561 10923-11021273107e5ac994d675749be0979556e761274bb93 172.16.32.116:7001 master - 0 1505329542241 2 connected 5562-10922364ae8322ab2627e25b05d45b702448c74afad10 172.16.32.116:9000 myself,slave a0b91f48e933c1f1d427c54917ce970bd25d29f8 0 0 7 connected3d27f60a1cc4d9c8f09aca928b03f0e083722d3b 172.16.32.116:8002 slave 88fe075375295b59eabe69fa1438ed7c7c314f43 0 1505329541239 3 connectedaeb684429d220c0fd1392574d193cc1ae7577782 172.16.32.116:8000 slave a0b91f48e933c1f1d427c54917ce970bd25d29f8 0 1505329545246 8 connected88fe075375295b59eabe69fa1438ed7c7c314f43 172.16.32.116:7002 master - 0 1505329543242 3 connected 11022-16383a96cad95dca2a8e1e0302bff4f835260d92e3d31 172.16.32.116:8001 slave 273107e5ac994d675749be0979556e761274bb93 0 1505329546248 2 connectedvars currentEpoch 8 lastVoteEpoch 0

19. 到7001等其他節點中查看,nodes.conf已經沒有9000的信息

# more nodes.conf273107e5ac994d675749be0979556e761274bb93 172.16.32.116:7001 myself,master - 0 0 2 connected 5562-10922a0b91f48e933c1f1d427c54917ce970bd25d29f8 172.16.32.116:7000 master - 0 1505329680312 8 connected 0-5561 10923-11021aeb684429d220c0fd1392574d193cc1ae7577782 172.16.32.116:8000 slave a0b91f48e933c1f1d427c54917ce970bd25d29f8 0 1505329684319 8 connected3d27f60a1cc4d9c8f09aca928b03f0e083722d3b 172.16.32.116:8002 slave 88fe075375295b59eabe69fa1438ed7c7c314f43 0 1505329686321 6 connecteda96cad95dca2a8e1e0302bff4f835260d92e3d31 172.16.32.116:8001 slave 273107e5ac994d675749be0979556e761274bb93 0 1505329685318 5 connected88fe075375295b59eabe69fa1438ed7c7c314f43 172.16.32.116:7002 master - 0 1505329683317 3 connected 11022-16383vars currentEpoch 8 lastVoteEpoch 0

~~~~~~~~~~~~~~~~~~~~~~~~~~~再次添加9000,以及9001~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

20. 將9000和9001再次加入集群,開始下面的折騰。

注意:需要將9000和9001下的redis.conf外的文件清除,重啟。然后才能再次加入集群。不然會遇到錯誤:

[ERR] Node 172.16.32.116:9001 is not empty. Either the node already knows other nodes (check with CLUSTER NODES) or contains some key in database 0.

21. 加入集群

./redis-trib.rb add-node 172.16.32.116:9000 172.16.32.116:7002./redis-trib.rb add-node 172.16.32.116:9001 172.16.32.116:7002

22. 現在是兩個空的Master節點

# ./redis-trib.rb check 172.16.32.116:9001>>> Performing Cluster Check (using node 172.16.32.116:9001)M: c4ba7a1f537ac66076791461d6af9012741fee74 172.16.32.116:9001 slots: (0 slots) master 0 additional replica(s)M: dbf78b73f2ab9e37cbf31abbc2beb3d5413d5516 172.16.32.116:9000 slots: (0 slots) master 0 additional replica(s) [OK] All nodes agree about slots configuration.>>> Check for open slots...>>> Check slots coverage...[OK] All 16384 slots covered.

23. 重分配100個slot到9000上,其實redis很聰明的,我連接的是9001,但是在分配的時候,它會問你,receiving node是誰,Source node 是誰。

# ./redis-trib.rb reshard 172.16.32.116:9001>>> Performing Cluster Check (using node 172.16.32.116:9001)......[OK] All nodes agree about slots configuration.>>> Check for open slots...>>> Check slots coverage...[OK] All 16384 slots covered.How many slots do you want to move (from 1 to 16384)? 100What is the receiving node ID? dbf78b73f2ab9e37cbf31abbc2beb3d5413d5516 <<<<<<<<<receiving node IDPlease enter all the source node IDs. Type 'all' to use all the nodes as source nodes for the hash slots. Type 'done' once you entered all the source nodes IDs.Source node #1:aeb684429d220c0fd1392574d193cc1ae7577782 <<<<<<<Source node我選的是 8000*** The specified node is not known or is not a master, please retry. <<<<<<<然而,并沒能欺騙redis,它發現了,這個是slave,沒有slot可以提供的。 Source node #1:273107e5ac994d675749be0979556e761274bb93 <<<<<<<<Source node再次指定為7001,開始分配了Source node #2:doneReady to move 100 slots. Source nodes: M: 273107e5ac994d675749be0979556e761274bb93 172.16.32.116:7001 slots:5562-10922 (5361 slots) master 1 additional replica(s) Destination node: M: dbf78b73f2ab9e37cbf31abbc2beb3d5413d5516 172.16.32.116:9000 slots: (0 slots) master 0 additional replica(s) Resharding plan: Moving slot 5562 from 273107e5ac994d675749be0979556e761274bb93 Moving slot 5563 from 273107e5ac994d675749be0979556e761274bb93

24. 查看分配情況,redis還是很聰明靈活的。

# redis-cli -p 7001 cluster nodes273107e5ac994d675749be0979556e761274bb93 172.16.32.116:7001 myself,master - 0 0 2 connected 5662-10922a0b91f48e933c1f1d427c54917ce970bd25d29f8 172.16.32.116:7000 master - 0 1505330856605 8 connected 0-5561 10923-11021aeb684429d220c0fd1392574d193cc1ae7577782 172.16.32.116:8000 slave a0b91f48e933c1f1d427c54917ce970bd25d29f8 0 1505330853598 8 connected3d27f60a1cc4d9c8f09aca928b03f0e083722d3b 172.16.32.116:8002 slave 88fe075375295b59eabe69fa1438ed7c7c314f43 0 1505330860611 6 connecteda96cad95dca2a8e1e0302bff4f835260d92e3d31 172.16.32.116:8001 slave 273107e5ac994d675749be0979556e761274bb93 0 1505330859608 5 connectedc4ba7a1f537ac66076791461d6af9012741fee74 172.16.32.116:9001 master - 0 1505330862615 9 connected       <<<<<<<<<<<<<<<<<<<<<依然是空的88fe075375295b59eabe69fa1438ed7c7c314f43 172.16.32.116:7002 master - 0 1505330861612 3 connected 11022-16383dbf78b73f2ab9e37cbf31abbc2beb3d5413d5516 172.16.32.116:9000 master - 0 1505330858607 10 connected 5562-5661    <<<<<<<<<<<<<<<<<<<<<從7001要來100個slot

25. 將9001添加為9000的slave節點 redis-cli -p <slave IP:port> cluster nodes <Master ID 號>

# redis-cli -p 9001 cluster nodes dbf78b73f2ab9e37cbf31abbc2beb3d5413d5516273107e5ac994d675749be0979556e761274bb93 172.16.32.116:7001 myself,master - 0 0 2 connected 5662-10922a0b91f48e933c1f1d427c54917ce970bd25d29f8 172.16.32.116:7000 master - 0 1505331457798 8 connected 0-5561 10923-11021aeb684429d220c0fd1392574d193cc1ae7577782 172.16.32.116:8000 slave a0b91f48e933c1f1d427c54917ce970bd25d29f8 0 1505331454791 8 connected3d27f60a1cc4d9c8f09aca928b03f0e083722d3b 172.16.32.116:8002 slave 88fe075375295b59eabe69fa1438ed7c7c314f43 0 1505331456795 6 connecteda96cad95dca2a8e1e0302bff4f835260d92e3d31 172.16.32.116:8001 slave 273107e5ac994d675749be0979556e761274bb93 0 1505331458799 10 connectedc4ba7a1f537ac66076791461d6af9012741fee74 172.16.32.116:9001 slave dbf78b73f2ab9e37cbf31abbc2beb3d5413d5516 0 1505331459801 10 connected88fe075375295b59eabe69fa1438ed7c7c314f43 172.16.32.116:7002 master - 0 1505331455793 3 connected 11022-16383dbf78b73f2ab9e37cbf31abbc2beb3d5413d5516 172.16.32.116:9000 master - 0 1505331453788 10 connected 5562-5661

經過各種折騰,redis添加,刪除,重分配slot等操作,都測試完了。

中間有很多命令輸出部門,視乎有點重復。但是為了更好的閱讀理解,觀察每一步操作的變化。后面查閱也更容易一些。
畢竟,年紀大了,記性不好。好多自己寫過的blog,回頭翻閱的時候,發現某些步驟,不是很好理解了。雖然我的blog,都是基于自己測試的結果,但是依然會忘記。

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對武林網的支持。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久亚洲私人国产精品va| 隔壁老王国产在线精品| 久久久久久国产免费| 亚洲高清色综合| 国产精品高清免费在线观看| 亚洲欧美在线免费| 欧美亚洲第一页| 国产日韩欧美在线视频观看| 日韩精品欧美国产精品忘忧草| 都市激情亚洲色图| 2023亚洲男人天堂| 欧美乱妇40p| 色狠狠av一区二区三区香蕉蜜桃| 亚洲精品乱码久久久久久按摩观| 国产精品丝袜一区二区三区| 久久精品色欧美aⅴ一区二区| 欧美亚洲午夜视频在线观看| 久久久伊人日本| 久久天天躁狠狠躁夜夜爽蜜月| 欧美一区深夜视频| 欧美激情免费观看| 国产精品成人免费视频| 色偷偷亚洲男人天堂| 欧美日韩成人免费| 这里只有视频精品| 中文字幕日韩在线观看| 日韩中文字幕网| 亚洲福利小视频| 国产精品wwww| y97精品国产97久久久久久| 日韩免费视频在线观看| 欧美自拍视频在线观看| 91精品久久久久久久久久久久久久| 亚洲美女又黄又爽在线观看| 亚洲系列中文字幕| 国产精品极品美女粉嫩高清在线| 久久久久日韩精品久久久男男| 久久福利视频网| 97高清免费视频| 国产欧美日韩亚洲精品| 日韩在线视频中文字幕| 视频在线观看99| 国产一级揄自揄精品视频| 国产精品一区电影| 亚洲精品网址在线观看| 国产精品高清在线观看| 国产免费一区二区三区在线能观看| 97香蕉超级碰碰久久免费的优势| 久久久精品网站| 久久精品国产2020观看福利| 久久偷看各类女兵18女厕嘘嘘| 久久久久这里只有精品| 国产香蕉精品视频一区二区三区| 国产综合色香蕉精品| 一区二区三区久久精品| 欧美亚洲成人精品| 成人xxxxx| 国产丝袜一区二区| 91在线视频九色| 亚洲精品网站在线播放gif| 九九热在线精品视频| 欧美激情精品久久久久久黑人| 亚洲成人av在线| 亚洲夜晚福利在线观看| 欧美成人高清视频| 久久韩剧网电视剧| 国产午夜精品一区理论片飘花| 午夜精品久久久久久久久久久久久| 国内精品久久久| 97av在线影院| 日韩高清欧美高清| 久久精品视频一| 疯狂做受xxxx高潮欧美日本| 亚洲精品二三区| 亚洲男人第一网站| 亚洲一区二区自拍| 亚洲资源在线看| 成人免费直播live| 欧美片一区二区三区| 午夜精品三级视频福利| 久久久久亚洲精品国产| 欧美性20hd另类| 欧美日韩另类视频| 亚洲最新av在线网站| 国产999精品| 久久精品国产成人| 91最新在线免费观看| 国产精品电影久久久久电影网| 国产精品欧美一区二区三区奶水| 亚洲性69xxxbbb| 日本三级韩国三级久久| 久久99热精品这里久久精品| 久久久影视精品| 欧洲成人性视频| 久久国产精品久久久久久| 国产精品看片资源| 在线观看精品自拍私拍| 97国产精品视频| 欧美乱大交做爰xxxⅹ性3| 亚洲深夜福利视频| 国产精品wwwwww| 日韩美女福利视频| 91九色单男在线观看| 另类视频在线观看| 8090理伦午夜在线电影| 最新69国产成人精品视频免费| 精品免费在线视频| 日韩在线视频一区| 69av视频在线播放| 性亚洲最疯狂xxxx高清| 91精品久久久久久久久青青| 川上优av一区二区线观看| 亚洲香蕉成人av网站在线观看| 国产精品尤物福利片在线观看| 国产欧美精品一区二区三区-老狼| 中文字幕亚洲欧美日韩2019| 亚洲在线免费观看| 国产成人拍精品视频午夜网站| 中文字幕日韩在线视频| 久久精品国产亚洲7777| 国产精品国产三级国产专播精品人| 日韩美女av在线免费观看| 久久综合五月天| 中文字幕av一区中文字幕天堂| 中文日韩在线视频| 久久久久久网址| 亚洲精品永久免费| 4438全国亚洲精品在线观看视频| 伊人久久久久久久久久久| 亚洲激情成人网| 久久99精品久久久久久噜噜| 一本色道久久88综合亚洲精品ⅰ| 国产精品欧美激情| 国模叶桐国产精品一区| 亚洲国产精品高清久久久| 奇米四色中文综合久久| 欧美成人免费播放| 亚洲国产精久久久久久| 欧美精品videossex88| 777国产偷窥盗摄精品视频| 欧美精品videos另类日本| 国产亚洲欧洲高清一区| 亚洲欧洲一区二区三区在线观看| 欧美日韩色婷婷| 欧美高清视频在线| 欧美国产欧美亚洲国产日韩mv天天看完整| 日韩中文字幕在线免费观看| 亚洲欧美国产精品va在线观看| 日本一区二区三区在线播放| 欧美日韩免费看| 中文字幕国产亚洲2019| 欧美成人精品在线视频| 亚洲欧洲在线视频| 国产成人精品日本亚洲| 91高清免费在线观看| 欧美性视频精品| 亚洲欧美日韩一区二区三区在线| 日韩在线观看高清| 欧美精品18videos性欧| 亚洲精品视频二区| 日韩精品久久久久久久玫瑰园| 国产亚洲日本欧美韩国| 国产在线精品播放| 2019亚洲男人天堂|