【问题标题】:Correct shutdown sequence for Redis clusterRedis 集群的正确关闭顺序
【发布时间】:2017-01-10 16:26:02
【问题描述】:

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

  • 3 台机器
  • 每台机器都有一个 Redis 服务器和一个 Redis 哨兵。
  • 其中一台服务器设置为主服务器,另外两台服务器为其从服务器。

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

谢谢。

【问题讨论】:

    标签: redis redis-cluster redis-cli redis-server


    【解决方案1】:

    关机顺序

    您应该首先关闭哨兵,以避免警报/通知和故障转移。然后你就可以关闭slave和master了。

    关机命令

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

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

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

    更新

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

    启动顺序如何?

    如果使用SENTINEL MONITOR <name> <ip> <port> <quorum>命令动态添加master进行监控,可以启动sentinel,动态添加master。相反,如果你用 sentinel 的配置文件添加 master,你可以先启动 Redis,以避免来自 sentinel 的警报。

    【讨论】:

    • 启动顺序是什么?先启动redis再启动sentinel?
    • @PreethiJahnavi 请在答案中查看我的更新。
    • 感谢您的第二个解决方案。但是,我的用例更倾向于您的初始解决方案,因为重新启动的频率更高。我理解了关闭命令的原因。对于启动,我认为应该先启动 Redis 服务,然后再启动哨兵服务。对吗?
    • @PreethiJahnavi 是的,您可以先启动 Redis 以避免警报。事实上,如果你不关心那些警报,你可以先启动 Redis 或 Sentinel。最终,sentinel 会正确监控 Redis。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-05-06
    • 2016-06-29
    • 1970-01-01
    • 2017-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多