怎么才能把Redis集群服务给停了,步骤啥的说说看吧
- 问答
- 2025-12-25 11:50:31
- 1
停掉Redis集群,核心思路是两步:先让所有从节点(Slave)和主节点(Master)完成数据同步,确保数据都落盘了;然后再逐个安全地关闭每个节点,下面我分步骤详细说说。
第一步:做好准备,了解清楚现状
在动手之前,你得先知道你的集群长什么样,这就好比你要指挥交通,得先知道有几个路口、车流情况如何。
-
连接上任意一个节点:你不需要去每台机器上操作,只需要找一台能连接到Redis集群的电脑,使用Redis的命令行工具
redis-cli,但这次连接需要带上一个特殊的参数-c,表示以集群模式连接,命令大概长这样:redis-cli -c -h <某个节点的IP地址> -p <端口号,通常是6379>你的集群里有个节点IP是192.168.1.100,那就输入:redis-cli -c -h 192.168.1.100 -p 6379 -
查看集群状态:连接上去之后,输入命令
CLUSTER INFO,这个命令会返回一堆信息,你需要重点关注两行:cluster_state:ok:这表示集群目前处于正常状态,如果是fail,说明已经有问题了,关机时要更小心。cluster_known_nodes:6:这告诉你整个集群一共有多少个节点,这个数字很重要,等下关机的时候你得心里有数。
-
查看节点详情:再输入一个更详细的命令
CLUSTER NODES,这个命令会列出集群里所有节点的信息,包括每个节点的ID、角色(是master还是slave)、它连接的其他节点,以及数据槽(slots)的分配情况,你最好把这个结果截图或者记下来,方便后面核对。
第二步:开始安全关闭节点(先奴隶,后主人)

现在你对集群有了整体了解,可以开始关机了,关机的顺序很关键,要先关闭所有的从节点(Slave),最后再关闭主节点(Master),为什么这样呢?想象一下,如果先把主节点关了,那么它的从节点会发现“主人”联系不上了,它可能会自动尝试“升级”成新的主节点,这就会导致集群状态混乱,甚至触发重新选举,关机过程就变得复杂了。
-
关闭一个从节点:
- 选择你要关闭的第一个从节点,用
redis-cli连接到这个节点上(这次连接可以不加-c参数,因为我们是直接操作这个实例,但加了也没问题),命令和第一步一样,只是IP地址换成这个从节点的地址。 - 连接成功后,输入最关键的命令:
SHUTDOWN SAVE或者SHUTDOWN NOSAVE。SHUTDOWN SAVE:意思是让Redis在关闭前执行一次数据持久化,把内存里最新的数据保存到硬盘上的RDB文件里,这是推荐的做法,能最大程度保证数据不丢失。SHUTDOWN NOSAVE:意思是直接关机,不保存数据,除非你非常确定当前的数据不重要或者已经有最新备份,否则不要用这个。
- 执行命令后,这个Redis进程就会安全退出,命令行窗口可能会自动关闭或者返回连接断开的提示,这就表示这个从节点已经成功关闭了。
- 选择你要关闭的第一个从节点,用
-
重复操作,关闭所有从节点:按照上面的方法,一个一个地连接到剩下的从节点上,逐个执行
SHUTDOWN SAVE命令,直到把所有从节点都关掉,你可以通过再次在还没关的节点上执行CLUSTER NODES来检查还有多少从节点在线,会发现关掉的节点状态会变成fail。
第三步:关闭主节点

当确认所有的从节点都已经顺利关闭后,现在终于可以关“老大”了。
- 逐个关闭主节点:和关闭从节点的步骤一模一样,连接到一个主节点 -> 执行
SHUTDOWN SAVE-> 确认关闭,然后再下一个主节点。 - 为什么主节点可以这样关?:因为此时从节点都已经停了,不会有谁因为主节点下线而触发“叛乱”(故障转移),主节点在接到关机指令后,会安静地保存好数据,然后退出,由于集群中大多数节点(所有主节点)是依次正常离线的,集群的“意识”也就自然消散了,不会产生异常状态。
第四步:最终检查
当你按照节点列表,关闭了所有节点后(就是CLUSTER INFO里显示的cluster_known_nodes数量的节点),整个Redis集群就完全停止了。
你可以通过操作系统的命令来最终确认一下,比如到每台服务器上,用ps -ef | grep redis命令看看是否还有Redis进程在运行,如果找不到相关的进程,那就大功告成了。
总结一下关键点和注意事项:
- 顺序是关键:务必遵守先停从节点,再停主节点的顺序,这是最稳妥、最不容易出错的方式。(来源:Redis官方文档中关于集群管理的建议精神,虽然没有一个直接叫“关机顺序”的章节,但其故障转移机制决定了这个顺序的必要性。)
- 使用SHUTDOWN命令:不要直接用
kill -9这种强制杀死进程的命令,那样Redis来不及保存数据,可能导致数据损坏或丢失。SHUTDOWN是Redis提供的友好关机方式。 - 数据持久化:强烈建议使用
SHUTDOWN SAVE来确保数据落盘,如果你的Redis配置了AOF持久化,Redis在关机时也会确保将最后的操作写入AOF文件。 - 特殊情况:如果你的集群本身已经处于故障状态(比如
cluster_state:fail),那么上述理想流程可能会遇到问题,这种情况下,可能需要对每个节点进行强制关闭,但数据丢失的风险会增大,最好在集群健康的时候执行关机操作。
就是停掉Redis集群服务的详细步骤,说白了,就是细心一点,像解一团缠在一起的线一样,按顺序来,别用蛮力,就能平稳顺利地搞定。
本文由邝冷亦于2025-12-25发表在笙亿网络策划,如有疑问,请联系我们。
本文链接:http://waw.haoid.cn/wenda/68147.html
