gpt4 book ai didi

Redis集群/负载均衡

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

Redis 不支持 master 主复制。

在redis教程中我看到有一个配置,有6个节点,3个master,3个slave,

任何人都可以告诉我这个配置的目的是什么(slaves 用于故障转移,3 master 的目的是什么?)

我的要求是减少从应用服务器到 Redis 的连接数。所以我一直在寻找一种可以指向多个 redis 节点的方法,所以如果我从 redis 节点 1 创建一个 key ,我可以从 Redis 节点 2 删除该 key 。

这可能吗?

最佳答案

首先,如果您不做太多工作,您可以更改默认配置

redis-trib.rb

在函数 def check_create_parameters 中。可以设置一主一从副本。

此配置的目的是为了容错。从站也可用于读取(READONLY)。在三个 master 中,hashslots 均匀分布,并且使用负载平衡算法可以重新分配实际的 key 。在节点之间分发 key 的可能算法的步骤是(由我测试并且它按预期工作):

  1. 寻找群雄
  2. 获取他们持有的 key 总数
  3. 为每个主节点存储主机名、端口和 key 数量
  4. 计算每个主人必须持有的 key ,以便要平衡的 key 分布(簇的总 key /数量大师)
  5. 查找哪些主节点必须获取或提供 key 以及总量他们必须给予/接受的 key 数
  6. 根据是否将主节点定性为源节点或目标节点他们分别在接收或赠送 key
  7. 开始从源节点迁移到目标节点,首先是hashslots 然后是相关的键并迭代直到所有主人拥有相同数量的 key

此算法将有助于最大程度地缩短响应时间。我的意思是:

有了三个主站,响应时间可以最小化。如果您的配置只有一个主控,而这个主控持有例如 30000 个#keys,那么一次获得 1000 个 key 的响应时间是 > 来自一个配置有 2 个主控,每个主控持有 15000 个。

如果您在 master1 中创建了一个 key ,那么如果您尝试从 master2 访问(读取)该 key ,您将收到一个 MOVED 错误。因此,解决方案是创建一个智能客户端,将哈希槽映射到相应的节点。因此,只有在 master2 将您的请求重定向到正确的 master 的情况下,您才能从 master2 中删除 key 。

希望对您有所帮助。

关于Redis集群/负载均衡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41500391/

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