Redis 集群的正确关闭顺序

Correct shutdown sequence for Redis cluster

假设我有以下 Redis 复制设置:

正常关闭此设置的正确顺序和命令是什么,同时保持现有的主服务器作为主服务器,现有的从服务器作为从服务器(意思是,不应发生故障转移或重新配置)

谢谢。

Shutdown sequence

您应该先关闭哨兵,以避免 alarms/notifications 和故障转移。然后就可以关闭slaves和master了。

Shutdown command

您可以使用 shutdown 命令正常关闭 Redis 实例(sentinel、slave 和 master)。

对于 3.0 之前的 Redis 版本(不是很确定),Redis sentinel 没有 shutdown 命令。但是你可以直接使用 killallkill -9 process_id 来杀死它而没有任何副作用。

============================================= ===============================

更新

在我原来的回答中,我建议先关闭slaves和master,以避免哨兵报警。事实上,还有另一种避免警报的方法。您可以在关闭 master 之前简单地从 sentinel 中删除 master:SENTINEL REMOVE <name>。去掉master后,就不用再关心关机顺序了

How about the startup order?

如果使用SENTINEL MONITOR <name> <ip> <port> <quorum>命令动态添加master到monitor,可以启动sentinel,动态添加master。相反,如果你用sentinel的配置文件添加master,你可以先启动Redis,避免sentinel的告警。