Redis主从设置具有自动故障转移功能

时间:2017-08-22 15:15:30

标签: redis master slave

我希望拥有一个主服务器和一个服务器的高可用性解决方案,这样当主服务器出现故障时,slave会自动接受连接。 我不关心数据持久性和复制,因为这是一个缓存解决方案。 由于开销,我宁愿没有复制。 我不能使用Sentinel,因为我在Windows和Redis v3.2上使用StackExchange.Redis驱动程序,它不支持Sentinel。 我不想进行群集,因为它需要6个节点,维护太多,而且我没有6台服务器。 是否有可能在没有手动切换主从的情况下拥有类似的东西? 感谢。

1 个答案:

答案 0 :(得分:2)

这正是Redis Sentinel的用途。如果你真的不能使用它,那么你可以创建一个小工作器来监视你的redis实例并在主服务器离开时提升主服务器,并在它返回时反向执行。监测应该很容易。 Redis甚至是ping command

看起来StackExchange.Redis已经可以监视多个实例并尝试选择正确的主实例,因此应用程序应检测到这一点并将命令发送给当前主服务器。

此处示例:https://stackexchange.github.io/StackExchange.Redis/Configuration#automatic-and-manual-configuration

否则,您需要为监视工作者提供一种与应用程序共享配置更改的方法。这可以通过共享文件或API来处理。您必须在连接/重新连接时检查应用程序中的这些更改。

最后,您的监视工作人员将提供Redis Sentinel提供的子集。您可以更好地花费在Windows上运行它,这个配置和存储库建议是可行的:https://github.com/ServiceStack/redis-config/blob/master/sentinel3/windows/start-all.cmd