*Redis CLUSTER RESET 命令

CLUSTER RESET 重置集群节点的状态,用于重新初始化节点。


*语法

CLUSTER RESET [HARD | SOFT]

*参数说明

参数 类型 必填 说明
HARD / SOFT Flag 重置模式,默认 SOFT

*重置模式对比

模式 行为
SOFT 保留节点 ID,清空槽位分配和已知节点信息,保留数据
HARD 完全重置:生成新节点 ID,清空所有状态和数据

*返回值

  • OK:重置成功
  • Error:节点不是主节点或集群模式未启用

*时间复杂度

O(N),N 为节点已知的集群节点数量和槽位数量。


*示例

*软重置(保留数据)

> CLUSTER RESET
OK

*硬重置(完全清空)

> CLUSTER RESET HARD
OK

*重置后重新加入集群

> CLUSTER RESET
OK
> CLUSTER MEET 192.168.1.10 6379
OK
> CLUSTER ADDSLOTSRANGE 0 5460
OK

*常见错误

错误 原因 解决
ERR CLUSTER RESET can only be called in master nodes 从节点不能执行 在主节点上执行
ERR This instance has cluster support disabled 未启用集群模式 开启 cluster-enabled yes
ERR Node is not empty 硬重置前需要确认 确认已备份数据后再执行 HARD

*最佳实践

  • SOFT 重置用于重新配置节点但不丢失数据(如调整槽位分配后回退)
  • HARD 重置用于完全重建节点(节点 ID 会改变,其他节点需用新 ID 引用)
  • 生产环境执行前务必备份数据(尤其是 HARD 模式)
  • 重置后节点不再属于任何集群,需要重新 MEET 和分配槽位
  • 从集群中移除节点建议先用 CLUSTER FORGET 而非直接 RESET

*FAQ

Q1: SOFT 和 HARD 重置后节点 ID 会变吗? A: SOFT 保留原节点 ID;HARD 生成全新的随机节点 ID。

Q2: RESET 会删除数据吗? A: SOFT 不删除数据;HARD 会清空所有数据和集群状态。

Q3: 重置后如何恢复集群关系? A: 需要重新执行 CLUSTER MEET 与其他节点建立连接,然后重新分配槽位或建立复制关系。

Q4: 为什么从节点不能执行 RESET A: 从节点的集群状态由主节点同步,直接重置会导致复制关系异常。需要从主节点端管理。