gpt4 book ai didi

Redis 双活复制

转载 作者:IT王子 更新时间:2023-10-29 06:01:39 33 4
gpt4 key购买 nike

我正在使用 redis 版本 2.8.3。我想构建一个 redis 集群。但是在这个集群中应该有multiple master。这意味着我需要多个节点,这些节点具有写访问权限和对所有其他节点的应用能力。

我可以构建一个包含一个主节点和多个从节点的集群。我刚刚配置了从属 redis.conf 文件并添加了它;

slaveof myMasterIp myMasterPort

就是这样。比我尝试通过 master 将一些东西写入数据库。它被复制到所有奴隶,我真的很喜欢它。

但是当我尝试通过一个 slave 写时,它告诉我 slave 没有写的权利。之后我只是在 redis.conf 文件中将 slave 的只读状态设置为 false。因此,我可以将一些东西写入 db。但我意识到,它没有复制到我的主复制中,所以它没有复制到所有其他从属复制中。

这意味着我无法构建双活集群。

我想看看redis有没有双活集群能力。但我找不到关于它的确切答案。

是否可以用redis搭建双活集群?如果是,我该怎么做?

谢谢!

最佳答案

Redis v2.8.3 不支持多主机设置。然而,真正的问题是您为什么要设置一个?换句话说,您要解决什么挑战/问题?

看起来您要解决的挑战是如何通过消除网络读取来减少网络负载(更多内容见下文)。由于 Redis 不是多主机(目前),唯一的方法是为每个应用程序服务器设置一个主机一个从机(到另一个主机)——即总共 4 个Redis 实例(以及两倍的 RAM)。

简单的场景是每个应用仅更新数据库键的互斥子集。在那种情况下,这种设置实际上可能是有益的(至少在短期内)。但是,如果两个应用程序都可以触摸所有键,或者即使只有一个键在应用程序之间“共享”以进行写入,那么您将需要将锁定/冲突解决/等等......逻辑放入您的应用程序中以巩固本地主人和奴隶差异(这可能有点矫枉过正)。然而,在任何一种情况下,您最终都会得到太多(即超过 1 个)Redise,这至少意味着更多的管理工作。

另请注意,通过将应用程序和数据库托管在同一台服务器上,您几乎可以确定可扩展性会失败。当您的应用程序或 Redis 需要更多计算资源时会发生什么?您将如何添加另一个应用服务器?

这让我回到您要解决的实际问题 - 网络负载。为什么这是一个问题?您的应用程序的吞吐量是否如此之大,或者网络是否太薄以至于您愿意竭尽全力?或者延迟是您想要解决的问题?无论如何,我建议您考虑一种耗时验证的设计,即将 Redis 从应用程序中分离出来,放在自己的资源上。诚然,网络会打你的脸,你必须解决/使用它(这是其他人所做的)。另一方面,您可以更灵活地控制更简单的设置,在我看来,这是一个巨大的收获。

关于Redis 双活复制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21076234/

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