我使用 Redis 有一段时间了,现在我们想要转移到一个具有容错能力、高可用性和负载平衡能力的冗余集群。
我主要将 Redis 用于一些 PHP Web 应用程序,用于存储一些进程状态信息(我为此使用 PHPRedis),并且我还想在负载平衡集群中将它用于 PHP 会话存储。
我已经有一个用于 Nginx 和 MySQL 的负载平衡(基于 pfSense)。
我看到 Redis 3 中存在 Redis Cluster,但我也读到一些关于它尚未准备好投入生产的评论,其他评论则表明 Redis 无法完成完整的主/主集群配置。
你的建议是什么?
- 尝试 Redis Cluster
- 转移到另一个 key=value 引擎(CouchDB?Memcached?其他?)
- 不必担心负载平衡,每次只使用集群的一个节点,并进行手动故障转移,因为我不使用持久性
- 还有其他想法吗?
非常感谢您的帮助!
答案1
Redis Sentinel 将允许您运行多个 redis 实例并为您处理故障转移。 http://redis.io/topics/sentinel
答案2
负载平衡 redis 的一个明显解决方案是使用哨兵。
据我所知,predis 目前不支持 sentinel。请参阅:
https://github.com/nrk/predis/issues/131
一个可能的解决方案是Redis 哨兵 + HAProxy 故障转移如果您想继续使用 predis。