我希望有一个一主一从的高可用性解决方案,这样当主故障时,从会自动接受连接。我不关心数据持久化和复制,因为这是一个缓存解决方案。因为开销的原因,我宁愿不进行复制。我不能使用前哨,因为我是在Windows和Redis v3.2上的StackExchange.Redis驱动程序,它不支持前哨。我不想做集群,因为它需要6个节点,这是太多的维护,而且我没有6台服务器。有没有可能在不手动切换主机和从机的情况下拥有这样的东西?谢谢。
发布于 2017-08-23 05:36:43
这正是Redis Sentinel的作用所在。如果你真的不能使用它,那么你可以创建一个小的worker,它将监视你的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
https://stackoverflow.com/questions/45821444
复制相似问题