Redis从3.0.7升级到5

8

我有很多运行3.0.7版本的Sentinel和Cluster服务器,需要升级到5。但我不能承受停机时间。请问有人可以告诉我如何做吗?

有些数据库太大了,服务器无法分配新的/第二个实例。最好的解决方案是在同一台服务器上启动一个新的Redis 5,并将其设置为3.0.7的从机。

1)我能否直接从3.2升级到5,还是需要先升级到4?

2)从这里阅读到,从3.3升级到4需要进行大规模的重启。有没有办法避免停机时间?如何恢复原始集群数据?备份和还原?

欢迎任何建议。


你曾经成功地进行过无停机升级吗? - jmartori
我们已经完成了,如果你期待博客的话,我会写一篇相关的博客文章(请关注!谢谢)。 - itsjwala
嗨,请分享你的博客,谈论同样的话题。 - Praveen kumar singhal
1个回答

1
你可以更改 Redis 5.0 的集群总线协议,使其与 3.0.7 兼容。 Redis 5.0 的集群总线协议为 1,而 Redis 3.0.7 的集群总线协议为 0。 你必须注意以下两个区别:
  1. 集群总线协议 1 支持模块消息,而协议 0 不支持。
  2. 集群总线协议 1 的 ping 消息具有额外的 'cport' 字段。

有没有可能通过配置选项更改协议版本?我看到只有通过大量的代码更改才能实现。https://github.com/antirez/redis/blob/5.0/src/cluster.c#L1650 - kubus

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接