首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

Redis 3.0.5 集群的命令、使用、维护(5)cluster delslots

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]


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