Redis CLUSTER RESET 命令根据 reset 类型配置 hard 或者 soft。注意该命令在主节点 hold 住一个或多个 keys 的时候无效,在这种情况下,如果要彻底reset 一个 master,需要将它的所有 key 先移除,如先使用 FLUSHALL,再使用 CLUSTER RESET。
命令格式
CLUSTER RESET [HARD|SOFT]
可用版本:>=3.0.0
时间复杂度:O(N),N 为集群已知的节点。
命令执行在节点上的效果如下:
- 集群中的节点都被忽略。
- 所有已分派/打开的槽会被 reset,以便 slots-to-nodes 对应关系被完全清除。
- 如果节点是 slave,它会被切换为空 master。它的数据集已被清空,因此最后也会变成一个空 master。
- *Hard reset only:生成新的节点 ID。
- Hard reset only:变量 currentEpoch 和 configEpoch 被设置为 0。
- 新配置被持久化到节点磁盘上的集群配置信息文件中。
当需要为一个新的或不同的集群提供一个新的集群节点是可使用该命令,同时它也在 Redis 集群测试框架中被广泛使用,它用于在每个新的测试单元启动是初始化群集状态。
如果 reset 类型没有指定,使用默认值 soft。
命令返回值
命令执行成功完成回复 OK,否则返回错误。