gpt4 book ai didi

redis - 重启 Redis 副本

转载 作者:可可西里 更新时间:2023-11-01 11:15:49 26 4
gpt4 key购买 nike

我正在使用具有 2 级主/从模式的 redis,没有集群或哨兵。基本上,我有 A -> B -> C,其中 A 是主 master,B 从 A 复制,C 从 B 复制。B 和 C 都是多个实例。现在我需要重新启动我们所有的实例,以便在不停机的情况下对操作系统进行一些安全修补。根据 Redis 官方文档,重启 master 会清除 slave 中的所有数据,这在我们的例子中是 Not Acceptable 。我正在尝试找到一种可以在不删除 C 上的数据的情况下重启 A 和 B 的解决方案。我的尝试是将所有数据转储到一个 rdb 文件中并重启 A。但是,这仍然可能会导致一些停机时间,因为 B 和 C 将尝试重新同步当它加载回 rdb 文件时,他们的数据与 A。我想到的另一种方法是在我重新启动 master 时关闭 slaves 的复制,然后一个一个地重新启动 salves。但是,这需要大量手动操作来执行重启。有没有更好的方法可以在不停机的情况下执行此更新?

一个相关的问题是我如何配置系统以便将来能够轻松处理这种重新启动?我可以在所有实例上启用持久性吗?如果启用了从站以实现持久性。重启后会发生什么?重启时会加载本地rdb文件还是做全同步。

最佳答案

According to the official Redis documentation, restarting a master will wipe out all data in slaves, which is not acceptable in our case.

我不确定您指的是文档的哪一部分,但无论如何都不是这样——这完全取决于您的操作方式。对于您的情况,我会使用如下所示的工作流程来保持服务正常运行并以滚动方式对其进行修补:

  1. 提升 B 成为大师
  2. 重启A,将其从属于C
  3. 提升 C 语言水平
  4. 重启B,将其从属于A
  5. 将 A 提升为大师
  6. 重启C,从属它B

关于redis - 重启 Redis 副本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48674927/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com