Redis 升级

不停机升级或重启 Redis 实例

Redis 被设计为长期运行的服务进程。您可以使用 CONFIG SET 命令在不重启的情况下修改许多配置选项,也可以在不重启的情况下从 AOF 切换到 RDB 快照持久化,或反之。更多信息可查看 CONFIG GET * 命令的输出。

有时仍需要重启,例如:将 Redis 进程升级到新版本,或者需要修改一个当前 CONFIG 命令不支持的配置参数。

请按照以下步骤避免停机:

  1. 将新的 Redis 实例设置为当前 Redis 实例的副本。为此,您需要一台不同的服务器,或者一台内存足够同时运行两个 Redis 实例的服务器。
  2. 如果使用单台服务器,请确保副本在与主实例不同的端口上启动,否则副本无法启动。
  3. 等待复制初始同步完成,并检查副本的日志文件。
  4. 使用 INFO 命令,确保主节点和副本具有相同数量的键;用 redis-cli 检查副本是否按预期工作并正确响应命令。
  5. 使用 CONFIG SET slave-read-only no 命令允许向副本写入。
  6. 配置所有客户端使用新的实例(副本)。在切换期间,您可能希望使用 CLIENT PAUSE 命令,确保没有客户端能写入旧的主节点。
  7. 确认主节点不再接收任何查询后(可用 MONITOR 命令检查),使用 REPLICAOF NO ONE 命令将副本提升为主节点,然后关闭旧的主节点。

如果您使用 Redis Sentinel 或 Redis Cluster,升级到新版本最简单的方法是逐个升级副本。然后执行手动故障转移,将其中一个已升级的副本提升为主节点,最后再升级最后一个副本。


参考文档:Redis 升级