*Redis CLUSTER FLUSHSLOTS 命令 删除节点自身的槽信息

*CLUSTER FLUSHSLOTS

*语法

CLUSTER FLUSHSLOTS

*说明

移除当前节点负责的所有哈希槽,使节点变为空状态(不负责任何槽位)。

使用场景

  • 将主节点降级为副本前清空槽位
  • 重新配置集群架构
  • 节点退役前的清理操作

警告:此命令不会迁移槽位中的数据!在生产环境中使用前,必须先通过重新分片将数据迁移到其他节点。

*示例

# 清空当前节点的所有槽位
redis-cli CLUSTER FLUSHSLOTS

# 验证节点已变为空
redis-cli CLUSTER NODES | grep myself

# 完整的主节点降级流程
# 1. 将槽位迁移到其他节点(使用 redis-cli --cluster reshard)
redis-cli --cluster reshard --cluster-from <node-id> --cluster-to <target-node-id> --cluster-slots <count> <cluster-ip>:<port>

# 2. 确认槽位已清空
redis-cli CLUSTER NODES | grep <node-id>

# 3. 清空槽位(如果还有残留)
redis-cli CLUSTER FLUSHSLOTS

# 4. 将节点配置为副本
redis-cli CLUSTER REPLICATE <new-master-id>

*返回值

  • OK:所有槽位已成功移除

*版本兼容性

版本 说明
>= 3.0.0 可用

*时间复杂度

O(N),其中 N 是节点负责的槽位数量。