在最近的研究中,我得到了这样一个信念:Redis不可能由多个主人组成,每个主人有两个奴隶。
https://github.com/uolter/redis_failover/issues/4#issuecomment-24377513
这个评论让我吃了一惊,于是我决定询问社区是否有可能以及人们如何处理失败。
我听说过redis-cluster项目,但目前看起来并不稳定,所以我不敢在生产环境中试用。
您可以根据需要部署任意数量的主设备,每个设备都有多个从设备,但是它们的行为就像是一个独立的集群,它们拥有自己的内存空间,在应用程序层负责分散您的密钥。主人,就像在Memcached多节点部署中一样。
另外,如果您没有Redis Sentinel正在监视您的数据节点,则您的应用程序将必须按照每个主节点来处理故障切换过程,以将其中一个从节点提升为主节点,并redirect其他从节点以使用新节点。
无论如何,除非你打算使用所有的从设备作为只读副本来提高读取吞吐量,否则单个从设备对于大多数使用情况已经足够了。
而关于Redis-Cluster,那么…恕我直言,Redis集群引入了一些在典型的Redis用例中有很大影响的处罚(没有多键操作,没有stream水线…),所以你应该在实施之前仔细评估它它。