设置多个redis master

Mar*_*ark 7 redis

在最近的研究中,我相信 redis 不可能设置多个 master,每个 master 有 2 个 slave。

https://github.com/uolter/redis_failover/issues/4#issuecomment-24377513

这条评论让我大吃一惊,所以我决定询问社区是否有可能以及人们如何处理故障转移?

我听说过 redis-cluster 项目,但目前似乎这不是很稳定,所以我不敢在生产中尝试这个项目。

小智 5

您可以根据需要部署任意数量的主节点,每个主节点具有任意数量的从节点,但它们的行为就像一个单独的集群,拥有自己的内存空间,您有责任在应用程序层使用每个节点正确地传播您的密钥主节点,就像您在 Memcached 多节点部署中所做的那样。

此外,如果您没有 Redis Sentinel 监视您的数据节点,则您的应用程序将不得不在每个主服务器的基础上处理故障转移过程,以将其中一个从服务器提升为主服务器并重定向其他从服务器以使用新的主服务器。

无论如何,对于大多数用例来说,单个从站就足够了,除非您打算将所有从站用作只读副本以提高读取吞吐量。

关于 Redis-Cluster,嗯……恕我直言,Redis Cluster 引入了一些惩罚(没有多键操作。没有流水线……),这对典型的 Redis 用例有很大的影响,所以你应该在实施之前仔细评估它它。