gpt4 book ai didi

redis - 如何制作地理分布式Active-Active redis集群架构

转载 作者:IT王子 更新时间:2023-10-29 06:02:15 25 4
gpt4 key购买 nike

问题陈述:我的应用程序将部署在 3 个不同的区域,即:北美、欧洲和亚洲。我想构建一个具有以下约束的 redis 架构:

  1. 每个区域都应该有自己的 Redis 集群,可以有多个主从。
  2. 每个区域的集群都应该能够在本地处理写入和读取。

让我详细说明第二点:我希望所有地区都应该有自己的数据副本。因此,欧洲应用程序写入的任何新数据都应该进入欧洲区域的 redis 集群,而不是任何其他区域。然后可以将此数据(异步)复制到亚洲和北美地区。

到目前为止,我发现我无法使用 redis sentinel,因为我想要多个 masters。我不能将(我认为)redis 集群与不同区域的主节点一起使用,因为这会将数据分片到所有区域,因此欧洲的应用程序可以尝试写入在亚洲的 redis 主节点上分片的 key 。

所以我的问题是:Redis OS 现在()或在不久的将来可以使用这种架构吗?

我读过 this , this , 和 this在 SO 上说明此功能以前不可用,但似乎此功能在 Redis Entireprise 中可用 here不过,我找不到关于 Redis 开源版本的任何内容。

最佳答案

一种可能的解决方案是使用 redis keys hash tags 在每个区域使用一个 redis master,例如 redis_master_US、redis_master_europe 等,在多个区域使用 slave(以提高读取性能和可用性),其中 keys可以是 {US}_California、{US}_Texas、{EU}_Germany、{ASIA}_Japan 等。但这里的问题是所有前缀为 US 的键都将转到同一个 redis master,但不一定是 redis_master_US,这取决于 redis master 之间的哈希槽分布。现在有一种方法可以解决这个问题,如果我们使用可以找到的预谋的 redis key 哈希标签 here .

现在我们可以使用像 {fyimk7v1CgnBo}_California, {fyimk7v1CgnBo}_Texas, {91Lnyl}_Germany, {6MQu4Y}_Japan 这样的 key ,我们知道它们将分别指向插槽 0、16382、8325并在创建集群时确保将这些插槽分别分配给 redis_master_US、redis_master_Germany 和 redis_master_asia。

虽然这种方法似乎有很多问题。

关于redis - 如何制作地理分布式Active-Active redis集群架构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49082307/

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