CLUSTER DELSLOTS

将节点的哈希槽设置为未绑定。

语法

CLUSTER DELSLOTS slot [slot ...]

引入版本:3.0.0

复杂度摘要:O(N)

在 Redis 集群中,每个节点都会跟踪哪个主节点正在为特定的哈希槽提供服务。

CLUSTER DELSLOTS 命令要求特定的 Redis 集群节点忘记哪个主节点正在为指定为参数的哈希槽提供服务。

必需参数

slot [slot ...]

从当前节点取消分配的一个或多个哈希槽。

示例

以下命令从接收命令的节点中删除插槽 5000 和 5001 的关联:

> CLUSTER DELSLOTS 5000 5001
OK

详细说明

Redis集群中的使用

此命令仅在集群模式下工作,可能有助于调试以及在创建新集群时手动编排集群配置。目前 redis-cli 未使用它,主要是为了 API 完整性而存在。

其他细节

在节点已收到 CLUSTER DELSLOTS 命令并因此删除了传递的哈希槽的关联的情况下,我们称这些哈希槽为 不受约束。请注意,当节点尚未配置为处理它们(可以使用 CLUSTER ADDSLOTS 命令完成)并且节点没有收到有关谁拥有这些哈希槽的任何信息(可以从心跳或更新消息中了解的信息)时,未绑定哈希槽的存在自然会发生。

如果具有未绑定哈希槽的节点从声称是其中一些哈希槽的所有者的另一个节点接收到心跳包,则立即建立关联。此外,如果接收到的心跳或更新消息的配置纪元大于节点自己的配置纪元,则重新建立关联。

但请注意:

  1. 仅当所有指定插槽已与某个节点关联时,该命令才有效。
  2. 如果多次指定同一个槽位,该命令会失败。
  3. 作为命令执行的副作用,节点可能会进入关闭状态,因为并非所有哈希槽都被覆盖。

Redis Software 与 Redis Cloud 兼容性

Redis
软件
Redis
Cloud
说明
❌ 标准
❌主动-主动
❌ 标准
❌主动-主动

返回值

RESP2

简单字符串回复:如果命令成功,则为 OK。否则返回错误。

RESP3

简单字符串回复:如果命令成功,则为 OK。否则返回错误。

资料来源:Redis 官方 CLUSTER DELSLOTS 文档;中文内容参考 Redis 文档许可。