redis cluster 动态删除节点

#首先查询一下 当前所有节点的信息

redis-cli -c  -p 7001

1.1.1.2:7007> cluster nodes

70c02ebfe21fd9de0fe47b0fce4887657babbe21 1.1.1.2:7005 slave 9ce1d76fe3fac744466088050e227859d88875cd 0 1473585002533 2 connected
ca0d0138034ce8ce211282dca20a114e4f701430 1.1.1.2:7007 myself,master - 0 0 7 connected 0-1665 5461-7127 10923-12588
9ce1d76fe3fac744466088050e227859d88875cd 1.1.1.2:7002 master - 0 1473585006871 2 connected 7128-10922
fdf06f99b9ae32fbbddc8b3e196659487dfccf6f 1.1.1.2:7003 master - 0 1473585003540 3 connected 12589-16383
c71b628db058d5b7907c91491aa33ed16a76ad66 1.1.1.2:7001 master - 0 1473585005561 1 connected 1666-5460
13a8fcc39ab3b6dc569de343ed63ac20c7906986 1.1.1.2:7008 slave ca0d0138034ce8ce211282dca20a114e4f701430 0 1473585000512 7 connected
eb0b49e4de19a9af2bf672d579e71e98c5169c7a 1.1.1.2:7006 slave fdf06f99b9ae32fbbddc8b3e196659487dfccf6f 0 1473585004551 3 connected
70670e2a0c7f212306582836b4acf58aae9897f0 1.1.1.2:7004 slave c71b628db058d5b7907c91491aa33ed16a76ad66 0 1473585006568 1 connected

#用ID删除从节点,注意 redis在删除节点的同时,会自动终止对应节点的redis进程
./redis-trib.rb del-node 1.1.1.2:7008 13a8fcc39ab3b6dc569de343ed63ac20c7906986
>>> Removing node 13a8fcc39ab3b6dc569de343ed63ac20c7906986 from cluster 1.1.1.2:7008
>>> Sending CLUSTER FORGET messages to the cluster...
>>> SHUTDOWN the node.

#再次查询一下 节点信息 验证7008被删除

 cluster nodes
70c02ebfe21fd9de0fe47b0fce4887657babbe21 1.1.1.2:7005 slave 9ce1d76fe3fac744466088050e227859d88875cd 0 1473585194985 2 connected
ca0d0138034ce8ce211282dca20a114e4f701430 1.1.1.2:7007 myself,master - 0 0 7 connected 0-1665 5461-7127 10923-12588
9ce1d76fe3fac744466088050e227859d88875cd 1.1.1.2:7002 master - 0 1473585191917 2 connected 7128-10922
fdf06f99b9ae32fbbddc8b3e196659487dfccf6f 1.1.1.2:7003 master - 0 1473585190889 3 connected 12589-16383
c71b628db058d5b7907c91491aa33ed16a76ad66 1.1.1.2:7001 master - 0 1473585191299 1 connected 1666-5460
eb0b49e4de19a9af2bf672d579e71e98c5169c7a 1.1.1.2:7006 slave fdf06f99b9ae32fbbddc8b3e196659487dfccf6f 0 1473585192939 3 connected
70670e2a0c7f212306582836b4acf58aae9897f0 1.1.1.2:7004 slave c71b628db058d5b7907c91491aa33ed16a76ad66 0 1473585193964 1 connected

删除7007主节点之前要先把7007的数据移到其他节点上(目前3.x版本只能移动到一个主节点上),4999是7007上实际的数量,也就是我需要全部移除去的数量,接受移出数据的主节点是7003,
./redis-trib.rb reshard 1.1.1.2:7007
>>> Performing Cluster Check (using node 1.1.1.2:7007)
M: ca0d0138034ce8ce211282dca20a114e4f701430 1.1.1.2:7007
   slots:0-1665,5461-7127,10923-12588 (4999 slots) master
   0 additional replica(s)
S: 70c02ebfe21fd9de0fe47b0fce4887657babbe21 1.1.1.2:7005
   slots: (0 slots) slave
   replicates 9ce1d76fe3fac744466088050e227859d88875cd
M: 9ce1d76fe3fac744466088050e227859d88875cd 1.1.1.2:7002
   slots:7128-10922 (3795 slots) master
   1 additional replica(s)
M: fdf06f99b9ae32fbbddc8b3e196659487dfccf6f 1.1.1.2:7003
   slots:12589-16383 (3795 slots) master
   1 additional replica(s)
M: c71b628db058d5b7907c91491aa33ed16a76ad66 1.1.1.2:7001
   slots:1666-5460 (3795 slots) master
   1 additional replica(s)
S: eb0b49e4de19a9af2bf672d579e71e98c5169c7a 1.1.1.2:7006
   slots: (0 slots) slave
   replicates fdf06f99b9ae32fbbddc8b3e196659487dfccf6f
S: 70670e2a0c7f212306582836b4acf58aae9897f0 1.1.1.2:7004
   slots: (0 slots) slave
   replicates c71b628db058d5b7907c91491aa33ed16a76ad66
[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)? 4999
What is the receiving node ID? fdf06f99b9ae32fbbddc8b3e196659487dfccf6f
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:ca0d0138034ce8ce211282dca20a114e4f701430
Source node #2:done

验证7007是否所有的插槽都被删除,这里确实都空了0,都给了7003 多了 0-1665 5461-7127这2部分,都是原来7007的
127.0.0.1:7001> cluster nodes

70c02ebfe21fd9de0fe47b0fce4887657babbe21 1.1.1.2:7005 slave 9ce1d76fe3fac744466088050e227859d88875cd 0 1473587808315 5 connected
ca0d0138034ce8ce211282dca20a114e4f701430 1.1.1.2:7007 master - 0 1473587806803 7 connected
70670e2a0c7f212306582836b4acf58aae9897f0 1.1.1.2:7004 slave c71b628db058d5b7907c91491aa33ed16a76ad66 0 1473587803263 4 connected
eb0b49e4de19a9af2bf672d579e71e98c5169c7a 1.1.1.2:7006 slave fdf06f99b9ae32fbbddc8b3e196659487dfccf6f 0 1473587804273 8 connected
c71b628db058d5b7907c91491aa33ed16a76ad66 1.1.1.2:7001 myself,master - 0 0 1 connected 1666-5460
9ce1d76fe3fac744466088050e227859d88875cd 1.1.1.2:7002 master - 0 1473587806298 2 connected 7128-10922
fdf06f99b9ae32fbbddc8b3e196659487dfccf6f 1.1.1.2:7003 master - 0 1473587807307 8 connected 0-1665 5461-7127 10923-16383

正式移除7007
./redis-trib.rb del-node 1.1.1.2:7007 ca0d0138034ce8ce211282dca20a114e4f701430
>>> Removing node ca0d0138034ce8ce211282dca20a114e4f701430 from cluster 1.1.1.2:7007
>>> Sending CLUSTER FORGET messages to the cluster...
>>> SHUTDOWN the node.

验证7007是否被移除,可以看到7007不在nodes里
127.0.0.1:7001> cluster nodes
70c02ebfe21fd9de0fe47b0fce4887657babbe21 1.1.1.2:7005 slave 9ce1d76fe3fac744466088050e227859d88875cd 0 1473588076285 5 connected
70670e2a0c7f212306582836b4acf58aae9897f0 1.1.1.2:7004 slave c71b628db058d5b7907c91491aa33ed16a76ad66 0 1473588075272 4 connected
eb0b49e4de19a9af2bf672d579e71e98c5169c7a 1.1.1.2:7006 slave fdf06f99b9ae32fbbddc8b3e196659487dfccf6f 0 1473588078314 8 connected
c71b628db058d5b7907c91491aa33ed16a76ad66 1.1.1.2:7001 myself,master - 0 0 1 connected 1666-5460
9ce1d76fe3fac744466088050e227859d88875cd 1.1.1.2:7002 master - 0 1473588077302 2 connected 7128-10922
fdf06f99b9ae32fbbddc8b3e196659487dfccf6f 1.1.1.2:7003 master - 0 1473588079328 8 connected 0-1665 5461-7127 10923-16383
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值