Board logo

标题: Redis 3.0.5 集群的命令、使用、维护(5)cluster delslots [打印本页]

作者: look_w    时间: 2018-12-16 15:43     标题: Redis 3.0.5 集群的命令、使用、维护(5)cluster delslots

cluster delslots移除当前节点的一个或多个槽点。只能删除自己的节点,删除别人的没用。
因为master才会有槽点,所以,也是只能在master 节点上操作,在slave 操作也没用。
用法是:
cluster delslots slots1 slotes2 slots3
我们看一下槽点的分配情况:

[url=][/url]
[root@web3 7009]# redis-cli -p 7009 -c cluster nodes| grep master3d2b7dccfc45ae2eb7aeb9e0bf001b0ac8f7b3da 192.168.33.13:7000 master - 0 1448529511113 1 connected 0-4095404cf1ecf54d4df46d5faaec4103cfdf67888ad2 192.168.33.13:7001 master - 0 1448529511113 2 connected 4096-81916f5cd78ee644c1df9756fc11b3595403f51216cc 192.168.33.13:7002 master - 0 1448529509101 3 connected 8192-1228735bdcb51ceeff00f9cc608fa1b4364943c7c07ce 192.168.33.13:7003 master - 0 1448529510609 4 connected 12288-16383[url=][/url]

4台master,那就把16381 16382 16383 3个槽点给删掉。
开始:
[url=][/url]
[root@web3 7009]# redis-cli -p 7003127.0.0.1:7003> cluster delslots 16381 16382 16383OK127.0.0.1:7003> cluster nodes35bdcb51ceeff00f9cc608fa1b4364943c7c07ce 192.168.33.13:7003 myself,master - 0 0 4 connected 12288-16380[url=][/url]


看,7003的缺失少了3个节点。我们在看下cluster info
127.0.0.1:7003> cluster infocluster_state:failcluster_slots_assigned:16381cluster_slots_ok:16381


只有16381个,确实少了4个。但是,注意:cluster_state:fail,集群失败了!!!
为什么呢?为什么删除了3个槽点就失败了呢。因为集群就是要满足所有的16364个槽点全部分配才会成功。所以。就失败了。
数据读取自然也会失败:
127.0.0.1:7003> get name(error) CLUSTERDOWN The cluster is down

我们用redis-trib检查一下,就知道了:
[url=][/url]
[root@web3 7009]# redis-trib.rb check 192.168.33.13:7000......[ERR] Nodes don't agree about configuration!>>> Check for open slots...>>> Check slots coverage...[ERR] Not all 16384 slots are covered by nodes.[url=][/url]


那如何挽救呢?那就顺便看下下面的这个命令吧。




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0