把节点清回未入群
节点要退出集群、被回收给别的用途,或者拓扑错乱到无法收拾时,用 CLUSTER RESET 把它清回「未入群」状态。默认的 SOFT 模式保留节点 ID,只清掉槽归属与集群状态;HARD 模式连节点 ID 一起换掉并重置配置纪元,适合彻底重来。
基本信息
| 语法 | CLUSTER RESET [HARD|SOFT] |
|---|---|
| 默认模式 | SOFT |
| 影响范围 | 仅本节点,其他节点仍保留对它的旧认知 |
| 执行前提 | 节点上的槽与数据已确认可以放弃 |
典型使用场景
- 集群拆解后把节点回收,改作单机实例使用
- 节点 ID 冲突或拓扑长期不收敛,需要从零重新组网
- 把闲置节点清空后作为全新成员加入另一套集群
- 演练与压测环境快速复位节点状态
- 槽迁移完成后摘掉旧节点的集群身份
重置与核对
重置与核对
# 重置前先记录节点 ID 与槽归属,方便事后对账
redis-cli -p 7000 CLUSTER MYID
redis-cli -p 7000 CLUSTER NODES | head -3
# SOFT:保留节点 ID,清掉槽归属与集群状态
redis-cli -p 7000 CLUSTER RESET SOFT
# HARD:更换节点 ID 并重置配置纪元,适合彻底重来
redis-cli -p 7000 CLUSTER RESET HARD
# 重置后确认集群状态已回到 fail(未入群)
redis-cli -p 7000 CLUSTER INFO | grep cluster_state重置前后对照
| 项目 | 重置前 | 重置后 |
|---|---|---|
| 节点 ID | 原有 ID | SOFT 保留,HARD 换新 |
| 槽归属 | 可能持有若干槽 | 全部清空 |
| 配置纪元 | 当前值 | HARD 下重置 |
| 失败与切换状态 | 可能残留标记 | 清空 |
| 成员身份 | 在集群名册中 | 退出,需重新加入 |
重置只作用于本节点,集群里其他节点仍会记着它;要让旧节点从名册里彻底消失,还需要在其余节点上执行 CLUSTER FORGET,或把它们也一并重置。
重置会放弃全部槽归属,属于不可逆的运维动作;执行前确认这些槽已经迁走或其中的数据确实不再需要,否则相关键会彻底失去归属。