群集 ADDSLOTS
语法
CLUSTER ADDSLOTS slot [slot ...]
- 从以下位置开始可用:
- 3.0.0
- 时间复杂度:
- O(N),其中 N 是哈希槽参数的总数
- ACL 类别:
-
@admin
,@slow
,@dangerous
,
此命令可用于修改节点的群集视图 配置。具体来说,它为节点分配了一组哈希槽 接收命令。如果命令成功,节点将映射 指定的 hash 插槽到自身,并将开始广播新的 配置。
但请注意:
- 仅当从接收命令的节点的角度来看,所有指定的插槽当前未分配时,该命令才有效。节点将拒绝获得已经属于其他节点(包括自身)的 slot 的所有权。
- 如果多次指定同一槽,则命令失败。
- 作为命令执行的副作用,如果指定为参数的 slot 设置为
importing
,则一旦节点将(以前未绑定的)插槽分配给自身,此状态就会被清除。
例
例如,以下命令将插槽 1、2、3 分配给接收 命令:
> CLUSTER ADDSLOTS 1 2 3
OK
但是,尝试再次执行它会导致错误,因为插槽 已分配:
> CLUSTER ADDSLOTS 1 2 3
ERR Slot 1 is already busy
Redis 集群中的使用情况
此命令仅在集群模式下有效,在以下环境中很有用 Redis 集群作:
- 要创建新的
cluster ADDSLOTS
用于初始设置主节点,在它们之间拆分可用的哈希槽。 - 为了修复某些插槽未分配的损坏集群。
有关槽传播和警告的信息
请注意,一旦节点为其分配了一组插槽,它将启动 在检测信号数据包标头中传播此信息。但是, 其他节点只有在插槽为 尚未与其他节点绑定,或者如果 通告新哈希槽的节点大于当前列出的节点 在表中。
这意味着此命令应仅由应用程序谨慎使用
编排 Redis Cluster,如redis-cli
和命令(如果使用
超出正确的上下文可能会使集群处于错误的状态或原因
数据丢失。
RESP2/RESP3 回复
简单的字符串回复:OK
如果命令成功。否则,将返回错误。