集群删除槽位
Syntax
CLUSTER DELSLOTS slot [slot ...]
- Available since:
- 3.0.0
- Time complexity:
- O(N) where N is the total number of hash slot arguments
- ACL categories:
-
@admin
,@slow
,@dangerous
,
在Redis集群中,每个节点都会跟踪哪个主节点正在服务特定的哈希槽。
CLUSTER DELSLOTS
命令要求特定的 Redis 集群节点忘记哪个主节点正在服务作为参数指定的哈希槽。
在接收到CLUSTER DELSLOTS
命令并因此移除传递的哈希槽关联的节点上下文中,我们说这些哈希槽是未绑定的。请注意,当节点未被配置为处理这些哈希槽(可以通过CLUSTER ADDSLOTS
命令完成)并且如果它没有收到关于谁拥有这些哈希槽的任何信息(它可以从心跳或更新消息中学习到)时,未绑定哈希槽的存在是自然发生的。
如果一个拥有未绑定哈希槽的节点接收到来自另一个节点的声称拥有这些哈希槽的心跳包,关联将立即建立。此外,如果接收到的心跳或更新消息的配置纪元大于节点自身的配置纪元,关联将重新建立。
然而,请注意:
- 该命令仅在所有指定的槽位已经与某个节点关联时才有效。
- 如果多次指定相同的插槽,命令将失败。
- 作为命令执行的副作用,节点可能会进入down状态,因为并非所有哈希槽都被覆盖。
Example
以下命令从接收命令的节点中移除槽位5000和5001的关联:
> CLUSTER DELSLOTS 5000 5001
OK
在Redis集群中的使用
此命令仅在集群模式下有效,可能对调试和在新集群创建时手动编排集群配置有用。目前redis-cli
未使用此命令,主要存在是为了API的完整性。
RESP2/RESP3 回复
Simple string reply:OK
if the command was successful. Otherwise an error is returned.