*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 是节点负责的槽位数量。