Redis 基础教程

Redis 命令

Redis 高级教程

Redis 笔记

original icon
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.knowledgedict.com/tutorial/redis-command-cluster-delslots.html

Redis CLUSTER DELSLOTS 命令

Redis 集群(Cluster) Redis 集群(Cluster)


Redis CLUSTER DELSLOTS 命令使一个指定的 Redis Cluster 节点去忘记一个主节点正在负责的哈希槽,这些哈希槽通过参数指定。

在已经接收到 DELSLOTS 命令的节点环境中,并且因此已经去除了指定哈希槽的关联,我们认为这些哈希槽是未绑定的 。请注意,当一个节点还没有被配置去负责它们(可以通过 ADDSLOTS 完成槽的分配)并且如果该节点没有收到关于谁拥有这些哈希槽的消息时(节点通过心跳包或者更新包获取消息),这些未绑定的哈希槽是自然而然本来就存在的。如果一个节点认为一些哈希槽是未绑定的,但是从其他节点接收到一个心跳包,得知这些哈希槽已经被其他节点负责,那么会立即确立其关联关系。而且,如果接收到一个心跳包或更新包的配置纪元比当前节点的大,那么会重新建立关联。

命令格式

CLUSTER DELSLOTS slot [slot ...]

可用版本:>=3.0.0

时间复杂度:O(N),N 为集群哈希插槽的数目。

值得注意的是:

  • 命令只在参数指定的哈希槽已经和某些节点关联时有效。
  • 如果同一个哈希槽被指定多次,该命令会失败。
  • 命令执行的副作用是,因为不在负责哈希槽,节点可能会进入下线状态。

命令返回值

如果命令成功执行返回 OK,否则返回一个错误。

使用场景

命令只在集群模式下工作,并且对调试非常有用,并且当创建新的集群时,为了可以手动的协调集群配置。当前没有被 redis-trib 使用,并且主要为了 API 的完整性存在。

示例

以下命令会移除槽 5000 和槽 5001 与接收该命令节点的关联:

redis> CLUSTER DELSLOTS 5000 5001
OK
Redis CLUSTER INFO 命令返回使用 INFO 风格的形式展示关于 Redis 集群的重要参数。这个命令主要是显示当前连接的集 ...
Redis CLUSTER SLOTS 命令返回哈希槽和 Redis 实例映射关系。这个命令对客户端实现集群功能非常有用,使用这个命令可以获 ...
Redis CLUSTER NODES 命令对集群中的每个节点都有当前集群配置的一个视图(快照),视图的信息由该节点所有已知节点提供,包括与 ...
Redis CLUSTER RESET 命令根据 reset 类型配置 hard 或者 soft。注意该命令在主节点 hold 住一个或多个 ...
Redis CLUSTER FORGET 命令从收到命令的 Redis 集群节点的节点信息列表中移除指定 ID 的节点。该命令不仅将待删除节 ...