在最近的研究中,我坚信 redis 不可能设置多个主服务器,并且每个主服务器都有 2 个从服务器。
https://github.com/uolter/redis_failover/issues/4#issuecomment-24377513
我对此评论感到非常吃惊,因此我决定询问社区这是否可行以及人们如何处理故障?
我听说过 redis-cluster 项目,但目前看来它还不稳定,所以我不敢在生产中尝试它。
答案1
您可以根据需要部署任意数量的主服务器,每个服务器可以有任意数量的从服务器,但它们的行为就像一个拥有自己内存空间的单独分离的集群,并且您有责任在应用程序层使用每个主服务器正确地传播密钥,就像您在 Memcached 多节点部署中所做的那样。
此外,如果没有 Redis Sentinel 监视您的数据节点,则您的应用程序将必须在每个主节点上处理故障转移过程,以将其中一个从节点提升为主节点,并将其他从节点重定向以使用新的主节点。
无论如何,对于大多数用例来说,单个从属服务器就足够了,除非您打算将所有从属服务器用作读取副本以提高读取吞吐量。
关于 Redis-Cluster,嗯......依我之见,Redis Cluster 引入了一些惩罚(没有多键操作,没有流水线......),这些惩罚对典型的 Redis 用例有很大影响,所以在实现它之前应该仔细评估。