首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Redis主/从复制-单点故障?

Redis主/从复制-单点故障?
EN

Stack Overflow用户
提问于 2011-01-18 08:20:30
回答 4查看 35.7K关注 0票数 40

如何在零宕机的情况下升级到更新版本的Redis?Redis从站是只读的,所以看起来你必须关闭主站点,而你的站点在等待它重新加载数据库的过程中会保持只读状态45秒或更长时间。

有什么办法可以解决这个问题吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-01-18 16:10:40

当节点离线时,使用SLAVEOF命令将从节点提升为主节点,然后当您将其重新联机时,将其设置为从节点,它将从在线节点复制所有数据。

您可能还需要确保您的客户端可以适当地处理更改/丢失的主节点。

如果你想变得更花哨,你可以设置你的客户端,如果它检测到写到主节点时出错,就升级一个从节点。

票数 23
EN

Stack Overflow用户

发布于 2012-01-06 13:00:06

Redis团队在这方面有非常好的文档

核心步骤:

  • 将新的Redis实例设置为当前Redis实例的从实例。为此,您需要一台不同的服务器,或者一台内存足够同时运行两个Redis实例的服务器。
  • 如果您使用单个服务器,请确保备机在与主实例不同的端口上启动,否则备机将无法启动。
  • 等待复制初始同步完成(查看备机日志文件)。
  • 确保使用信息确保主机和备机中存在相同数量的密钥。使用redis-cli检查从机是否按您希望的方式工作,以及是否正在回复您的所有客户端以便使用新实例(即从机)。
  • 一旦您确定主机不再收到任何查询(您可以使用commands.
  • Configure命令进行检查),使用SLAVEOF no ONE命令选择从机为主机,然后关闭您的主机。

完整文档:

Upgrading or restarting a Redis instance without downtime

票数 30
EN

Stack Overflow用户

发布于 2014-04-18 13:26:54

你可以使用Redis Sentinel来做这件事,sentinel会自动将一个slave提升为新的主机。你可以在这里找到更多信息,http://redis.io/topics/sentinel

Sentinel是一个用来管理redis服务器的系统,它持续监控redis的主服务器和从服务器,当一个主服务器宕机时,它会自动将一个从服务器升级到主服务器。当旧主机启动时,它将成为新主机的从属主机。

这里不会停机,也不需要手动配置配置文件。您可以访问上面的链接,了解如何为您的redis服务器配置sentinel。

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4719346

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档