redis集群故障切换方案
步骤:
1、增加临时节点并加入集群
2、将故障节点槽位移动到新节点
3、剔除故障节点
4、备份故障节点配置下架更换
5、更换后按照1-3步骤将临时节点剔除,将原故障节点重新加入集群
#测试环境为3主3从,有5个key
redis-cli -c -p 8102 -h 172.17.0.89 -a 123456 dbsize
(integer) 2
redis-cli -c -p 8101 -h 172.17.0.87 -a 123456 dbsize
(integer) 2
redis-cli -c -p 8101 -h 172.17.0.89 -a 123456 dbsize
(integer) 1
redis-cli -c -p 8102 -h 172.17.0.88 -a 123456 dbsize
(integer) 2
redis-cli -c -p 8102 -h 172.17.0.87 -a 123456 dbsize
(integer) 2
redis-cli -c -p 8103 -h 172.17.0.87 -a 123456 dbsize
(integer) 1
#查看集群节点,3主3从
[root@redis01 app]# redis-cli -c -p 8101 -a 123456 cluster nodes
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
3ee0b618a655d290d2c0635ee49a43eaca51fa3c 172.17.0.89:8102@18102 slave 7816dceab3956b4bf54e65ee1fa34ecc44a586e4 0 1703246497000 3 connected
59a58723820506401d245611e9d58d5e709c5197 172.17.0.87:8101@18101 myself,master - 0 1703246499000 1 connected 0-5460
1f57753a61aea6cfc9c6c39392dc476f9f06cb88 172.17.0.89:8101@18101 master - 0 1703246500011 5 connected 10923-16383
fd1904a404ebd407b5dfcef0fd82591880fa11c6 172.17.0.88:8102@18102 slave 59a58723820506401d245611e9d58d5e709c5197 0 1703246497000 1 connected
7816dceab3956b4bf54e65ee1fa34ecc44a586e4 172.17.0.88:8101@18101 master - 0 1703246498000 3 connected 5461-10922
4ea726fb15d855361e6d4c3464dd25293017b46b 172.17.0.87:8102@18102 slave 1f57753a61aea6cfc9c6c39392dc476f9f06cb88 0 1703246499003 5 connected
#将临时主节点加入集群
#172.17.0.87:8103为新节点,172.17.0.87:8101 -a 123456 为集群存活节点及密码
[root@redis01 app]# redis-cli --cluster add-node 172.17.0.87:8103 172.17.0.87:8101 -a 123456
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
>>> Adding node 172.17.0.87:8103 to cluster 172.17.0.87:8101
>>> Performing Cluster Check (using node 172.17.0.87:8101)
M: 59a58723820506401d245611e9d58d5e709c5197 172.17.0.87:8101
slots:[0-5460] (5461 slots) master
1 additional replica(s)
S: 3ee0b618a655d290d2c0635ee49a43eaca51fa3c 172.17.0.89:8102
slots: (0 slots) slave
replicates 7816dceab3956b4bf54e65ee1fa34ecc44a586e4
M: 1f57753a61aea6cfc9c6c39392dc476f9f06cb88 172.17.0.89:8101
slots:[10923-16383] (5461 slots) master
1 additional replica(s)
S: fd1904a404ebd407b5dfcef0fd82591880fa11c6 172.17.0.88:8102
slots: (0 slots) slave
replicates 59a58723820506401d245611e9d58d5e709c5197
M: 7816dceab3956b4bf54e65ee1fa34ecc44a586e4 172.17.0.88:8101
slots:[5461-10922] (5462 slots) master
1 additional replica(s)
S: 4ea726fb15d855361e6d4c3464dd25293017b46b 172.17.0.87:8102
slots: (0 slots) slave
replicates 1f57753a61aea6cfc9c6c39392dc476f9f06cb88
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
>>> Send CLUSTER MEET to node 172.17.0.87:8103 to make it join the cluster.
[OK] New node added correctly.
#先查看新的主节点ID
[root@redis01 app]# redis-cli -c -p 8101 -a 123456 cluster nodes
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
3ee0b618a655d290d2c0635ee49a43eaca51fa3c 172.17.0.89:8102@18102 slave 7816dceab3956b4bf54e65ee1fa34ecc44a586e4 0 1703246709000 3 connected
59a58723820506401d245611e9d58d5e709c5197 172.17.0.87:8101@18101 myself,master - 0 1703246706000 1 connected 0-5460
1f57753a61aea6cfc9c6c39392dc476f9f06cb88 172.17.0.89:8101@18101 master - 0 1703246709576 5 connected 10923-16383
fd1904a404ebd407b5dfcef0fd82591880fa11c6 172.17.0.88:8102@18102 slave 59a58723820506401d245611e9d58d5e709c5197 0 1703246708571 1 connected
7816dceab3956b4bf54e65ee1fa34ecc44a586e4 172.17.0.88:8101@18101 master - 0 1703246707564 3 connected 5461-10922
4ea726fb15d855361e6d4c3464dd25293017b46b 172.17.0.87:8102@18102 slave 1f57753a61aea6cfc9c6c39392dc476f9f06cb88 0 1703246707000 5 connected
8701b02f167d8a36dc4861a3af9a4ba047234332 172.17.0.87:8103@18103 master - 0 1703246708000 0 connected
#将从节点加入集群:
[root@redis01 app]# redis-cli --cluster add-node --cluster-slave --cluster-master-id 8701b02f167d8a36dc4861a3af9a4ba047234332 172.17.0.88:8103 172.17.0.87:8101 -a 123456
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
>>> Adding node 172.17.0.88:8103 to cluster 172.17.0.87:8101
>>> Performing Cluster Check (using node 172.17.0.87:8101)
M: 59a58723820506401d245611e9d58d5e709c5197 172.17.0.87:8101
slots:[0-5460] (5461 slots) master
1 additional replica(s)
S: 3ee0b618a655d290d2c0635ee49a43eaca51fa3c 172.17.0.89:8102
slots: (0 slots) slave
replicates 7816dceab3956b4bf54e65ee1fa34ecc44a586e4
M: 1f57753a61aea6cfc9c6c39392dc476f9f06cb88 172.17.0.89:8101
slots:[10923-16383] (5461 slots) master
1 additional replica(s)
S: fd1904a404ebd407b5dfcef0fd82591880fa11c6 172.17.0.88:8102
slots: (0 slots) slave
replicates 59a58723820506401d245611e9d58d5e709c5197
M: 7816dceab3956b4bf54e65ee1fa34ecc44a586e4 172.17.0.88:8101
slots:[5461-10922] (5462 slots) master
1 additional replica(s)
S: 4ea726fb15d855361e6d4c3464dd25293017b46b 172.17.0.87:8102
slots: (0 slots) slave
replicates 1f57753a61aea6cfc9c6c39392dc476f9f06cb88
M: 8701b02f167d8a36dc4861a3af9a4ba047234332 172.17.0.87:8103
slots: (0 slots) master
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
>>> Send CLUSTER MEET to node 172.17.0.88:8103 to make it join the cluster.
Waiting for the cluster to join
>>> Configure node as replica of 172.17.0.87:8103.
[OK] New node added correctly.
#此处模拟标黄节点为故障节点
dc6697770175a41f58c67451665fb351385c2134 172.17.0.88:8103@18103 slave 8701b02f167d8a36dc4861a3af9a4ba047234332 0 1703247320897 0 connected
3ee0b618a655d290d2c0635ee49a43eaca51fa3c 172.17.0.89:8102@18102 slave 7816dceab3956b4bf54e65ee1fa34ecc44a586e4 0 1703247316866 3 connected
59a58723820506401d245611e9d58d5e709c5197 172.17.0.87:8101@18101 myself,master - 0 1703247318000 1 connected 0-5460
1f57753a61aea6cfc9c6c39392dc476f9f06cb88 172.17.0.89:8101@18101 slave 4ea726fb15d855361e6d4c3464dd25293017b46b 0 1703247315860 7 connected
fd1904a404ebd407b5dfcef0fd82591880fa11c6 172.17.0.88:8102@18102 slave 59a58723820506401d245611e9d58d5e709c5197 0 1703247319000 1 connected
7816dceab3956b4bf54e65ee1fa34ecc44a586e4 172.17.0.88:8101@18101 master - 0 1703247317873 3 connected 5461-10922
4ea726fb15d855361e6d4c3464dd25293017b46b 172.17.0.87:8102@18102 master - 0 1703247318883 7 connected 10923-16383
8701b02f167d8a36dc4861a3af9a4ba047234332 172.17.0.87:8103@18103 master - 0 1703247319892 0 connected
#将故障主节点槽位移动到新节点
[root@redis01 app]# redis-cli --cluster reshard 172.17.0.87 8101 7816dceab3956b4bf54e65ee1fa34ecc44a586e4 -a 123456
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
>>> Performing Cluster Check (using node 172.17.0.87:8101)
M: 59a58723820506401d245611e9d58d5e709c5197 172.17.0.87:8101
slots:[0-5460] (5461 slots) master
1 additional replica(s)
S: dc6697770175a41f58c67451665fb351385c2134 172.17.0.88:8103
slots: (0 slots) slave
replicates 8701b02f167d8a36dc4861a3af9a4ba047234332
S: 3ee0b618a655d290d2c0635ee49a43eaca51fa3c 172.17.0.89:8102
slots: (0 slots) slave
replicates 7816dceab3956b4bf54e65ee1fa34ecc44a586e4
S: 1f57753a61aea6cfc9c6c39392dc476f9f06cb88 172.17.0.89:8101
slots: (0 slots) slave
replicates 4ea726fb15d855361e6d4c3464dd25293017b46b
S: fd1904a404ebd407b5dfcef0fd82591880fa11c6 172.17.0.88:8102
slots: (0 slots) slave
replicates 59a58723820506401d245611e9d58d5e709c5197
M: 7816dceab3956b4bf54e65ee1fa34ecc44a586e4 172.17.0.88:8101
slots:[5461-10922] (5462 slots) master
1 additional replica(s)
M: 4ea726fb15d855361e6d4c3464dd25293017b46b 172.17.0.87:8102
slots:[10923-16383] (5461 slots) master
1 additional replica(s)
M: 8701b02f167d8a36dc4861a3af9a4ba047234332 172.17.0.87:8103
slots: (0 slots) master
1 additional replica(s)
[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)? 5462 #要移动的槽位数
What is the receiving node ID? 8701b02f167d8a36dc4861a3af9a4ba047234332 #接收槽位的节点,为新加入的主节点
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: 7816dceab3956b4bf54e65ee1fa34ecc44a586e4 #要移出槽位的节点,为故障节点
Source node #2: done #可以选择多个节点,输入done结束输入
#以下为弹出的预览
Ready to move 5462 slots.
Source nodes:
M: 7816dceab3956b4bf54e65ee1fa34ecc44a586e4 172.17.0.88:8101
slots:[5461-10922] (5462 slots) master
1 additional replica(s)
Destination node:
M: 8701b02f167d8a36dc4861a3af9a4ba047234332 172.17.0.87:8103
slots: (0 slots) master
1 additional replica(s)
Resharding plan:
Moving slot 5461 from 7816dceab3956b4bf54e65ee1fa34ecc44a586e4
Moving slot 5462 from 7816dceab3956b4bf54e65ee1fa34ecc44a586e4
Moving slot 5463 from 7816dceab3956b4bf54e65ee1fa34ecc44a586e4
Moving slot 5464 from 7816dceab3956b4bf54e65ee1fa34ecc44a586e4
……
Moving slot 10921 from 7816dceab3956b4bf54e65ee1fa34ecc44a586e4
Moving slot 10922 from 7816dceab3956b4bf54e65ee1fa34ecc44a586e4
Do you want to proceed with the proposed reshard plan (yes/no)? yes #是否确定该迁移方案并开始迁移,输入yes
#查看故障节点槽位情况,故障主节点槽位已移动到新的主节点
[root@redis01 app]# redis-cli -c -p 8101 -a 123456 cluster nodes
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
dc6697770175a41f58c67451665fb351385c2134 172.17.0.88:8103@18103 slave 8701b02f167d8a36dc4861a3af9a4ba047234332 0 1703247663000 8 connected
3ee0b618a655d290d2c0635ee49a43eaca51fa3c 172.17.0.89:8102@18102 slave 8701b02f167d8a36dc4861a3af9a4ba047234332 0 1703247663000 8 connected
59a58723820506401d245611e9d58d5e709c5197 172.17.0.87:8101@18101 myself,master - 0 1703247664000 1 connected 0-5460
1f57753a61aea6cfc9c6c39392dc476f9f06cb88 172.17.0.89:8101@18101 slave 4ea726fb15d855361e6d4c3464dd25293017b46b 0 1703247666607 7 connected
fd1904a404ebd407b5dfcef0fd82591880fa11c6 172.17.0.88:8102@18102 slave 59a58723820506401d245611e9d58d5e709c5197 0 1703247666000 1 connected
7816dceab3956b4bf54e65ee1fa34ecc44a586e4 172.17.0.88:8101@18101 master - 0 1703247667613 3 connected
4ea726fb15d855361e6d4c3464dd25293017b46b 172.17.0.87:8102@18102 master - 0 1703247665000 7 connected 10923-16383
8701b02f167d8a36dc4861a3af9a4ba047234332 172.17.0.87:8103@18103 master - 0 1703247666000 8 connected 5461-10922
#剔除故障主节点
[root@redis01 app]# redis-cli --cluster del-node 172.17.0.87:8101 7816dceab3956b4bf54e65ee1fa34ecc44a586e4 -a 123456
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
>>> Removing node 7816dceab3956b4bf54e65ee1fa34ecc44a586e4 from cluster 172.17.0.87:8101
>>> Sending CLUSTER FORGET messages to the cluster...
>>> Sending CLUSTER RESET SOFT to the deleted node.
#剔除故障从节点
[root@redis01 app]# redis-cli --cluster del-node 172.17.0.87:8101 dc6697770175a41f58c67451665fb351385c2134 -a 123456
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
>>> Removing node dc6697770175a41f58c67451665fb351385c2134 from cluster 172.17.0.87:8101
>>> Sending CLUSTER FORGET messages to the cluster...
>>> Sending CLUSTER RESET SOFT to the deleted node.
#查看集群节点,仍为3主3从且槽位分配均匀
[root@redis01 app]# redis-cli -c -p 8101 -a 123456 cluster nodes
3ee0b618a655d290d2c0635ee49a43eaca51fa3c 172.17.0.89:8102@18102 slave 8701b02f167d8a36dc4861a3af9a4ba047234332 0 1703248083000 8 connected
59a58723820506401d245611e9d58d5e709c5197 172.17.0.87:8101@18101 myself,master - 0 1703248083000 1 connected 0-5460
1f57753a61aea6cfc9c6c39392dc476f9f06cb88 172.17.0.89:8101@18101 slave 4ea726fb15d855361e6d4c3464dd25293017b46b 0 1703248082000 7 connected
fd1904a404ebd407b5dfcef0fd82591880fa11c6 172.17.0.88:8102@18102 slave 59a58723820506401d245611e9d58d5e709c5197 0 1703248084693 1 connected
4ea726fb15d855361e6d4c3464dd25293017b46b 172.17.0.87:8102@18102 master - 0 1703248082000 7 connected 10923-16383
8701b02f167d8a36dc4861a3af9a4ba047234332 172.17.0.87:8103@18103 master - 0 1703248083685 8 connected 5461-10922
#查看key数量确认无数据丢失
redis-cli -c -p 8103 -h 172.17.0.87 -a 123456 dbsize
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
(integer) 1
[root@redis01 app]# redis-cli -c -p 8101 -h 172.17.0.87 -a 123456 dbsize
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
(integer) 2
[root@redis01 app]# redis-cli -c -p 8101 -h 172.17.0.89 -a 123456 dbsize
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
(integer) 2
[root@redis01 app]# redis-cli -c -p 8102 -h 172.17.0.88 -a 123456 dbsize
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
(integer) 2
[root@redis01 app]# redis-cli -c -p 8102 -h 172.17.0.87 -a 123456 dbsize
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
(integer) 2
[root@redis01 app]# redis-cli -c -p 8103 -h 172.17.0.87 -a 123456 dbsize
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
(integer) 1
#扩展,如槽位分配不均可以使用以下方式重新分配槽位
redis-cli --cluster rebalance --cluster-threshold 1 --cluster-use-empty-masters 172.17.0.87:8101 -a 123456
节点扩容:
步骤:
1、节点规划
节点 端口 备注
172.17.0.87 8101 原节点
172.17.0.87 8102 原节点
172.17.0.88 8101 原节点
172.17.0.88 8102 原节点
172.17.0.89 8101 原节点
172.17.0.89 8102 原节点
172.17.0.87 8103 新主节点
172.17.0.87 8104 89:8103从节点
172.17.0.88 8103 新主节点
172.17.0.88 8104 87:8103从节点
172.17.0.89 8103 新主节点
172.17.0.89 8104 88:8103从节点
2、主节点加入集群
redis-cli --cluster add-node 172.17.0.87:8103 172.17.0.87:8101 -a 123456
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
>>> Adding node 172.17.0.87:8103 to cluster 172.17.0.87:8101
>>> Performing Cluster Check (using node 172.17.0.87:8101)
M: 0995bca9e3d1f499223881ced1adf669cc7e3f14 172.17.0.87:8101
slots:[0-5460] (5461 slots) master
1 additional replica(s)
S: bb5cef83bf6343313b36769447d18c643d78b098 172.17.0.88:8102
slots: (0 slots) slave
replicates 0995bca9e3d1f499223881ced1adf669cc7e3f14
S: e7f39b79ad1f9064c6d77528d639178f9ded0394 172.17.0.87:8102
slots: (0 slots) slave
replicates 5c1a9c61d3497d2ce9ee61893c25d6cdfdf8cd2b
S: 66cbe4edea1880e0b0edb907f862ee655b765254 172.17.0.89:8102
slots: (0 slots) slave
replicates a815c482e0c7d9178096b747c0692460c5d0a011
M: 5c1a9c61d3497d2ce9ee61893c25d6cdfdf8cd2b 172.17.0.89:8101
slots:[10923-16383] (5461 slots) master
1 additional replica(s)
M: a815c482e0c7d9178096b747c0692460c5d0a011 172.17.0.88:8101
slots:[5461-10922] (5462 slots) master
1 additional replica(s)
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
>>> Send CLUSTER MEET to node 172.17.0.87:8103 to make it join the cluster.
[OK] New node added correctly.
redis-cli --cluster add-node 172.17.0.88:8103 172.17.0.87:8101 -a 123456
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
>>> Adding node 172.17.0.88:8103 to cluster 172.17.0.87:8101
>>> Performing Cluster Check (using node 172.17.0.87:8101)
M: 0995bca9e3d1f499223881ced1adf669cc7e3f14 172.17.0.87:8101
slots:[0-5460] (5461 slots) master
1 additional replica(s)
S: bb5cef83bf6343313b36769447d18c643d78b098 172.17.0.88:8102
slots: (0 slots) slave
replicates 0995bca9e3d1f499223881ced1adf669cc7e3f14
S: e7f39b79ad1f9064c6d77528d639178f9ded0394 172.17.0.87:8102
slots: (0 slots) slave
replicates 5c1a9c61d3497d2ce9ee61893c25d6cdfdf8cd2b
M: e4bb38859fb394821a86f8facbd09d40a71f7d90 172.17.0.87:8103
slots: (0 slots) master
S: 66cbe4edea1880e0b0edb907f862ee655b765254 172.17.0.89:8102
slots: (0 slots) slave
replicates a815c482e0c7d9178096b747c0692460c5d0a011
M: 5c1a9c61d3497d2ce9ee61893c25d6cdfdf8cd2b 172.17.0.89:8101
slots:[10923-16383] (5461 slots) master
1 additional replica(s)
M: a815c482e0c7d9178096b747c0692460c5d0a011 172.17.0.88:8101
slots:[5461-10922] (5462 slots) master
1 additional replica(s)
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
>>> Send CLUSTER MEET to node 172.17.0.88:8103 to make it join the cluster.
[OK] New node added correctly.
redis-cli --cluster add-node 172.17.0.89:8103 172.17.0.87:8101 -a 123456
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
>>> Adding node 172.17.0.89:8103 to cluster 172.17.0.87:8101
>>> Performing Cluster Check (using node 172.17.0.87:8101)
M: 0995bca9e3d1f499223881ced1adf669cc7e3f14 172.17.0.87:8101
slots:[0-5460] (5461 slots) master
1 additional replica(s)
S: bb5cef83bf6343313b36769447d18c643d78b098 172.17.0.88:8102
slots: (0 slots) slave
replicates 0995bca9e3d1f499223881ced1adf669cc7e3f14
S: e7f39b79ad1f9064c6d77528d639178f9ded0394 172.17.0.87:8102
slots: (0 slots) slave
replicates 5c1a9c61d3497d2ce9ee61893c25d6cdfdf8cd2b
M: e4bb38859fb394821a86f8facbd09d40a71f7d90 172.17.0.87:8103
slots: (0 slots) master
S: 66cbe4edea1880e0b0edb907f862ee655b765254 172.17.0.89:8102
slots: (0 slots) slave
replicates a815c482e0c7d9178096b747c0692460c5d0a011
M: 5c1a9c61d3497d2ce9ee61893c25d6cdfdf8cd2b 172.17.0.89:8101
slots:[10923-16383] (5461 slots) master
1 additional replica(s)
M: a815c482e0c7d9178096b747c0692460c5d0a011 172.17.0.88:8101
slots:[5461-10922] (5462 slots) master
1 additional replica(s)
M: 7ad94073f481375394303613e357987c73c0b031 172.17.0.88:8103
slots: (0 slots) master
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
>>> Send CLUSTER MEET to node 172.17.0.89:8103 to make it join the cluster.
[OK] New node added correctly.
3、给新加入的主节点分配槽位
#重新分配前槽位,新加入的主节点没有分配到槽位
5c1a9c61d3497d2ce9ee61893c25d6cdfdf8cd2b 172.17.0.89:8101@18101 master - 0 1727315393000 5 connected 10923-16383
66cbe4edea1880e0b0edb907f862ee655b765254 172.17.0.89:8102@18102 slave a815c482e0c7d9178096b747c0692460c5d0a011 0 1727315392000 3 connected
e4bb38859fb394821a86f8facbd09d40a71f7d90 172.17.0.87:8103@18103 master - 0 1727315393000 0 connected
bb5cef83bf6343313b36769447d18c643d78b098 172.17.0.88:8102@18102 slave 0995bca9e3d1f499223881ced1adf669cc7e3f14 0 1727315390000 1 connected
a815c482e0c7d9178096b747c0692460c5d0a011 172.17.0.88:8101@18101 master - 0 1727315390000 3 connected 5461-10922
7ad94073f481375394303613e357987c73c0b031 172.17.0.88:8103@18103 master - 0 1727315391964 8 connected
05d19743bf4653f9687a58b7ebda41026c8bd852 172.17.0.89:8103@18103 master - 0 1727315393976 9 connected
e7f39b79ad1f9064c6d77528d639178f9ded0394 172.17.0.87:8102@18102 myself,slave 5c1a9c61d3497d2ce9ee61893c25d6cdfdf8cd2b 0 1727315390000 5 connected
0995bca9e3d1f499223881ced1adf669cc7e3f14 172.17.0.87:8101@18101 master - 0 1727315393874 1 connected 0-5460
#重新分配槽位
redis-cli --cluster rebalance --cluster-threshold 1 --cluster-use-empty-masters 172.17.0.87:8101 -a 123456
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
>>> Performing Cluster Check (using node 172.17.0.87:8101)
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
>>> Rebalancing across 6 nodes. Total weight = 6.00
Moving 2732 slots from 172.17.0.88:8101 to 172.17.0.89:8103
############################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################
Moving 2731 slots from 172.17.0.89:8101 to 172.17.0.88:8103
###########################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################
Moving 2731 slots from 172.17.0.87:8101 to 172.17.0.87:8103
###########################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################
#重新分配后槽位
redis-cli -c -h 172.17.0.87 -p 8102 -a 123456 cluster nodes
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
5c1a9c61d3497d2ce9ee61893c25d6cdfdf8cd2b 172.17.0.89:8101@18101 master - 0 1727316076577 5 connected 13654-16383
66cbe4edea1880e0b0edb907f862ee655b765254 172.17.0.89:8102@18102 slave a815c482e0c7d9178096b747c0692460c5d0a011 0 1727316079597 3 connected
e4bb38859fb394821a86f8facbd09d40a71f7d90 172.17.0.87:8103@18103 master - 0 1727316077583 11 connected 0-2730
bb5cef83bf6343313b36769447d18c643d78b098 172.17.0.88:8102@18102 slave 0995bca9e3d1f499223881ced1adf669cc7e3f14 0 1727316076000 1 connected
a815c482e0c7d9178096b747c0692460c5d0a011 172.17.0.88:8101@18101 master - 0 1727316077584 3 connected 8193-10922
7ad94073f481375394303613e357987c73c0b031 172.17.0.88:8103@18103 master - 0 1727316077000 10 connected 10923-13653
05d19743bf4653f9687a58b7ebda41026c8bd852 172.17.0.89:8103@18103 master - 0 1727316076000 9 connected 5461-8192
e7f39b79ad1f9064c6d77528d639178f9ded0394 172.17.0.87:8102@18102 myself,slave 5c1a9c61d3497d2ce9ee61893c25d6cdfdf8cd2b 0 1727316077000 5 connected
0995bca9e3d1f499223881ced1adf669cc7e3f14 172.17.0.87:8101@18101 master - 0 1727316078590 1 connected 2731-5460
4、新的从节点加入
从节点加入:
redis-cli --cluster add-node --cluster-slave --cluster-master-id e4bb38859fb394821a86f8facbd09d40a71f7d90 172.17.0.88:8104 172.17.0.87:8101 -a 123456
>>> Adding node 172.17.0.88:8104 to cluster 172.17.0.87:8101
>>> Performing Cluster Check (using node 172.17.0.87:8101)
M: 0995bca9e3d1f499223881ced1adf669cc7e3f14 172.17.0.87:8101
slots:[2731-5460] (2730 slots) master
1 additional replica(s)
M: 05d19743bf4653f9687a58b7ebda41026c8bd852 172.17.0.89:8103
slots:[5461-8192] (2732 slots) master
S: bb5cef83bf6343313b36769447d18c643d78b098 172.17.0.88:8102
slots: (0 slots) slave
replicates 0995bca9e3d1f499223881ced1adf669cc7e3f14
M: 5c1a9c61d3497d2ce9ee61893c25d6cdfdf8cd2b 172.17.0.89:8101
slots:[13654-16383] (2730 slots) master
1 additional replica(s)
M: 7ad94073f481375394303613e357987c73c0b031 172.17.0.88:8103
slots:[10923-13653] (2731 slots) master
S: e7f39b79ad1f9064c6d77528d639178f9ded0394 172.17.0.87:8102
slots: (0 slots) slave
replicates 5c1a9c61d3497d2ce9ee61893c25d6cdfdf8cd2b
M: e4bb38859fb394821a86f8facbd09d40a71f7d90 172.17.0.87:8103
slots:[0-2730] (2731 slots) master
M: a815c482e0c7d9178096b747c0692460c5d0a011 172.17.0.88:8101
slots:[8193-10922] (2730 slots) master
1 additional replica(s)
S: 66cbe4edea1880e0b0edb907f862ee655b765254 172.17.0.89:8102
slots: (0 slots) slave
replicates a815c482e0c7d9178096b747c0692460c5d0a011
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
>>> Send CLUSTER MEET to node 172.17.0.88:8104 to make it join the cluster.
Waiting for the cluster to join
>>> Configure node as replica of 172.17.0.87:8103.
[OK] New node added correctly.
redis-cli --cluster add-node --cluster-slave --cluster-master-id 7ad94073f481375394303613e357987c73c0b031 172.17.0.89:8104 172.17.0.87:8101 -a 123456
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
>>> Adding node 172.17.0.89:8104 to cluster 172.17.0.87:8101
>>> Performing Cluster Check (using node 172.17.0.87:8101)
M: 0995bca9e3d1f499223881ced1adf669cc7e3f14 172.17.0.87:8101
slots:[2731-5460] (2730 slots) master
1 additional replica(s)
M: 05d19743bf4653f9687a58b7ebda41026c8bd852 172.17.0.89:8103
slots:[5461-8192] (2732 slots) master
S: bb5cef83bf6343313b36769447d18c643d78b098 172.17.0.88:8102
slots: (0 slots) slave
replicates 0995bca9e3d1f499223881ced1adf669cc7e3f14
M: 5c1a9c61d3497d2ce9ee61893c25d6cdfdf8cd2b 172.17.0.89:8101
slots:[13654-16383] (2730 slots) master
1 additional replica(s)
M: 7ad94073f481375394303613e357987c73c0b031 172.17.0.88:8103
slots:[10923-13653] (2731 slots) master
S: e7f39b79ad1f9064c6d77528d639178f9ded0394 172.17.0.87:8102
slots: (0 slots) slave
replicates 5c1a9c61d3497d2ce9ee61893c25d6cdfdf8cd2b
S: 660c6be2e33b069b3cd5b967c0c55edececb22d5 172.17.0.88:8104
slots: (0 slots) slave
replicates e4bb38859fb394821a86f8facbd09d40a71f7d90
M: e4bb38859fb394821a86f8facbd09d40a71f7d90 172.17.0.87:8103
slots:[0-2730] (2731 slots) master
1 additional replica(s)
M: a815c482e0c7d9178096b747c0692460c5d0a011 172.17.0.88:8101
slots:[8193-10922] (2730 slots) master
1 additional replica(s)
S: 66cbe4edea1880e0b0edb907f862ee655b765254 172.17.0.89:8102
slots: (0 slots) slave
replicates a815c482e0c7d9178096b747c0692460c5d0a011
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
>>> Send CLUSTER MEET to node 172.17.0.89:8104 to make it join the cluster.
Waiting for the cluster to join
>>> Configure node as replica of 172.17.0.88:8103.
[OK] New node added correctly.
redis-cli --cluster add-node --cluster-slave --cluster-master-id 05d19743bf4653f9687a58b7ebda41026c8bd852 172.17.0.87:8104 172.17.0.87:8101 -a 123456
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
>>> Adding node 172.17.0.87:8104 to cluster 172.17.0.87:8101
>>> Performing Cluster Check (using node 172.17.0.87:8101)
M: 0995bca9e3d1f499223881ced1adf669cc7e3f14 172.17.0.87:8101
slots:[2731-5460] (2730 slots) master
1 additional replica(s)
S: a93f2b6ed44eed1a576e224aa81f8ff20aad117c 172.17.0.89:8104
slots: (0 slots) slave
replicates 7ad94073f481375394303613e357987c73c0b031
M: 05d19743bf4653f9687a58b7ebda41026c8bd852 172.17.0.89:8103
slots:[5461-8192] (2732 slots) master
S: bb5cef83bf6343313b36769447d18c643d78b098 172.17.0.88:8102
slots: (0 slots) slave
replicates 0995bca9e3d1f499223881ced1adf669cc7e3f14
M: 5c1a9c61d3497d2ce9ee61893c25d6cdfdf8cd2b 172.17.0.89:8101
slots:[13654-16383] (2730 slots) master
1 additional replica(s)
M: 7ad94073f481375394303613e357987c73c0b031 172.17.0.88:8103
slots:[10923-13653] (2731 slots) master
1 additional replica(s)
S: e7f39b79ad1f9064c6d77528d639178f9ded0394 172.17.0.87:8102
slots: (0 slots) slave
replicates 5c1a9c61d3497d2ce9ee61893c25d6cdfdf8cd2b
S: 660c6be2e33b069b3cd5b967c0c55edececb22d5 172.17.0.88:8104
slots: (0 slots) slave
replicates e4bb38859fb394821a86f8facbd09d40a71f7d90
M: e4bb38859fb394821a86f8facbd09d40a71f7d90 172.17.0.87:8103
slots:[0-2730] (2731 slots) master
1 additional replica(s)
M: a815c482e0c7d9178096b747c0692460c5d0a011 172.17.0.88:8101
slots:[8193-10922] (2730 slots) master
1 additional replica(s)
S: 66cbe4edea1880e0b0edb907f862ee655b765254 172.17.0.89:8102
slots: (0 slots) slave
replicates a815c482e0c7d9178096b747c0692460c5d0a011
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
>>> Send CLUSTER MEET to node 172.17.0.87:8104 to make it join the cluster.
Waiting for the cluster to join
>>> Configure node as replica of 172.17.0.89:8103.
[OK] New node added correctly.
从节点加入后集群及槽位:
redis-cli -c -h 172.17.0.87 -p 8102 -a 123456 cluster nodes
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
e4bb38859fb394821a86f8facbd09d40a71f7d90 172.17.0.87:8103@18103 master - 0 1727316250000 11 connected 0-2730
660c6be2e33b069b3cd5b967c0c55edececb22d5 172.17.0.88:8104@18104 slave e4bb38859fb394821a86f8facbd09d40a71f7d90 0 1727316252791 11 connected
0995bca9e3d1f499223881ced1adf669cc7e3f14 172.17.0.87:8101@18101 master - 0 1727316248000 1 connected 2731-5460
bb5cef83bf6343313b36769447d18c643d78b098 172.17.0.88:8102@18102 slave 0995bca9e3d1f499223881ced1adf669cc7e3f14 0 1727316250676 1 connected
05d19743bf4653f9687a58b7ebda41026c8bd852 172.17.0.89:8103@18103 master - 0 1727316251682 9 connected 5461-8192
7d03a9c90ea8431d3608362d88beaa7ee33ca5c3 172.17.0.87:8104@18104 slave 05d19743bf4653f9687a58b7ebda41026c8bd852 0 1727316252791 9 connected
a815c482e0c7d9178096b747c0692460c5d0a011 172.17.0.88:8101@18101 master - 0 1727316249000 3 connected 8193-10922
66cbe4edea1880e0b0edb907f862ee655b765254 172.17.0.89:8102@18102 slave a815c482e0c7d9178096b747c0692460c5d0a011 0 1727316250000 3 connected
7ad94073f481375394303613e357987c73c0b031 172.17.0.88:8103@18103 master - 0 1727316249000 10 connected 10923-13653
a93f2b6ed44eed1a576e224aa81f8ff20aad117c 172.17.0.89:8104@18104 slave 7ad94073f481375394303613e357987c73c0b031 0 1727316252689 10 connected
5c1a9c61d3497d2ce9ee61893c25d6cdfdf8cd2b 172.17.0.89:8101@18101 master - 0 1727316249000 5 connected 13654-16383
e7f39b79ad1f9064c6d77528d639178f9ded0394 172.17.0.87:8102@18102 myself,slave 5c1a9c61d3497d2ce9ee61893c25d6cdfdf8cd2b 0 1727316247000 5 connected