#首先查询一下 当前所有节点的信息
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
./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.
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