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

Redis master slave setup with automatic failover

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

这正是 Redis Sentinel 的用途。如果你真的不能使用它,那么你可以创建一个小工作者来监视你的 redis 实例并在主人离开时将奴隶提升为主人,并在主人回来时做相反的事情。监控应该很容易。 Redis甚至作为ping command.

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

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

否则,您将需要为您的监视器工作者提供一种与您的应用程序共享配置更改的方法。这可以通过共享文件或 API 来处理。您必须在 connect/reconnect.

上检查您的应用程序中的这些更改

最后,您的监视器工作人员将提供 Redis Sentinel 提供的部分内容。你的努力最好花在 windows 上 运行,这个配置和存储库建议这是可能的:https://github.com/ServiceStack/redis-config/blob/master/sentinel3/windows/start-all.cmd