CLUSTER ADDSLOTS

语法
CLUSTER ADDSLOTS slot [slot ...]
可用版本
3.0.0
时间复杂度
O(N),其中 N 是哈希槽参数的总数
ACL 类别
@admin, @slow, @dangerous,

此命令用于修改节点对集群配置的视图。具体来说,它将一组哈希槽分配给接收命令的节点。如果命令成功,该节点将把指定的哈希槽映射到自身,并将开始广播新的配置。

但是请注意

  1. 该命令仅在接收命令的节点从其自身的角度来看,所有指定的槽当前未分配的情况下才起作用。节点将拒绝获取已分配给其他节点(包括自身)的槽的所有权。
  2. 如果多次指定同一个槽,则命令将失败。
  3. 作为命令执行的副作用,如果作为参数指定的槽之一被设置为importing,则一旦该节点将(以前未绑定的)槽分配给自己,此状态就会被清除。

示例

例如,以下命令将槽 1 2 3 分配给接收命令的节点

> CLUSTER ADDSLOTS 1 2 3
OK

但是,尝试再次执行它会导致错误,因为这些槽已被分配

> CLUSTER ADDSLOTS 1 2 3
ERR Slot 1 is already busy

在 Redis 集群中的用法

此命令仅在集群模式下有效,在以下 Redis 集群操作中很有用

  1. 要创建新的集群,cluster ADDSLOTS用于在初始设置主节点时将可用哈希槽分配给它们。
  2. 为了修复某些槽未分配的损坏集群。

有关槽传播和警告的信息

请注意,一旦节点将一组槽分配给自己,它将开始在心跳数据包标头中传播此信息。但是,其他节点只有在它们将该槽视为未绑定到其他节点,或者广告新哈希槽的节点的配置纪元大于当前在表中列出的节点时,才会接受该信息。

这意味着此命令应谨慎使用,仅由协调 Redis 集群的应用程序(如redis-cli)使用,如果在不正确的上下文中使用此命令,可能会使集群处于错误状态或导致数据丢失。

RESP2/RESP3 回复

简单字符串回复: 如果命令成功,则返回OK。否则将返回错误。
RATE THIS PAGE
Back to top ↑