首页/数据/Redis 进阶速查/CLUSTER RESET 重置节点

CLUSTER RESET 重置节点

CLUSTER RESET [HARD|SOFT] 让节点放弃槽并退出集群身份:SOFT 保留节点 ID 与节点列表,HARD 一并清空并生成新 ID,实例回到「未入群」状态。

Redis 进阶速查数据更新于 2026-10-13

把节点清回未入群

节点要退出集群、被回收给别的用途,或者拓扑错乱到无法收拾时,用 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原有 IDSOFT 保留,HARD 换新
槽归属可能持有若干槽全部清空
配置纪元当前值HARD 下重置
失败与切换状态可能残留标记清空
成员身份在集群名册中退出,需重新加入
重置只作用于本节点,集群里其他节点仍会记着它;要让旧节点从名册里彻底消失,还需要在其余节点上执行 CLUSTER FORGET,或把它们也一并重置。
重置会放弃全部槽归属,属于不可逆的运维动作;执行前确认这些槽已经迁走或其中的数据确实不再需要,否则相关键会彻底失去归属。

易错点

  • 在仍有槽和数据的节点上直接重置 → 这些键在集群中失去归属,业务读到空数据 → 先迁移槽或书面确认数据可丢
  • 只重置了一个节点,其他节点还记着它 → 旧节点 ID 反复出现在 NODES 输出里,排查时被误导 → 在其余节点用 CLUSTER FORGET 剔除
  • 该用 HARD 时用了 SOFT,或反过来 → 身份没清干净或该保留的 ID 被换掉,重新加入时出现冲突 → 按目标选模式,重置后核对 MYID
  • 集群仍在承载业务时直接重置成员 → 槽覆盖不全导致整体不可用(取决于 require-full-coverage)→ 安排维护窗口,先评估该配置的影响

数据来源与参考

  • Redis 官方文档:CLUSTER RESET 命令
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌