gpt4 book ai didi

Redis集群最小配置

转载 作者:可可西里 更新时间:2023-11-01 11:24:31 25 4
gpt4 key购买 nike

实际上,我正在使用带有 HAProxy 的 Redis 主从配置,以便 Wordpress 具有高可用性。这种配置很好并且工作完美(我能够在不停机的情况下移除任何服务器进行维护)。这种配置的问题是,只有一个 Redis 服务器获得所有流量,如果该服务器死机,其他服务器只是等待,因此在负载非常高的网页中可能会出现问题,添加更多服务器不是解决方案,因为总是只有一个将成为主人。

考虑到这一点,我在想是否可以只使用 Redis 集群来允许在所有节点上进行读/写,但我不确定它是否适用于我的设置。

大多数时候我的设置限制为三个节点,我在某些地方读到 Redis 集群的最小设置是三个节点,但建议使用六个。这是合理的,因为此设置允许拥有从节点,如果她的主人死了,这些节点将成为主人,然后所有数据将被保留,但如果数据不关心会发生什么?我的意思是,在我的设置中,数据只是缓存的对象,所以如果不存在,就重新创建它:

  • 数据将丢失(不关心),其他节点将再次从客户端获取对象,以便在以后的请求中提供它(例如如果刷新数据会发生这种情况)。
  • 节点将回答数据不存在并拒绝缓存,因为该对象必须位于其他已死亡的节点上。

有人知道吗?

谢谢!!

最佳答案

当主节点死亡时,Redis 集群进入关闭状态,任何涉及由失败实例提供的 key 的命令都将失败。

这可能和其他一些分布式软件不同,因为Redis Cluster并不是那种每个master都持有所有数据的程序。事实上,key 空间是水平分区的,每个 key 只由一个 master 服务。

specification 中提到了这一点:

The key space is split into 16384 slots...a single hash slot will be served by a single node...

The base algorithm used to map keys to hash slots is the following:

HASH_SLOT = CRC16(key) mod 16384

当你建立一个集群时,你肯定要求每个节点服务一组槽,每个槽只能由一个节点服务。如果一个节点死亡,您将失去该节点上的槽,除非您有一个从属故障转移来为它们提供服务,因此任何涉及映射到这些槽的键的命令都将失败。

关于Redis集群最小配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50985053/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com