首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Redis模仿MASTER/MASTER?还是别的什么?

Redis模仿MASTER/MASTER?还是别的什么?
EN

Stack Overflow用户
提问于 2011-09-23 02:59:33
回答 3查看 10.6K关注 0票数 6

我在这里阅读了很多帖子,也在网上冲浪,但也许我问的问题不对。我知道在集群可用之前,Redis目前是主/从模式。然而,我想知道是否有人可以告诉我如何在逻辑上配置Redis以满足我的需求(或者如果它不是正确的工具)。

场景:

我们在美国的两端有两个网站。我们希望客户端能够在每个站点上以高容量进行写入。然后,我们希望每个客户端也能够在其站点上执行读取。但是,我们希望数据在姐妹站点的写入时间小于50ms内可用。考虑到我们有足够的带宽。有没有办法配置redis来满足我们的需求?我们的最大写入大小大约是5k,通常要小得多。主要的一点是,即使在默认情况下不支持,我如何have2正在相互同步的母版。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-10-10 03:48:42

Tom回答的问题是,您并没有运行任何类型的集群,您只是在向两个服务器写入数据。如果你想确保它们之间的一致性,这是一个问题。考虑当您的客户端向远程服务器写入失败时会发生什么。是否撤消对本地的写入?当您无法写入远程服务器时,应用程序会发生什么情况?当你不能从本地阅读时会发生什么?

第二个问题是Joshua提出的基本物理问题。对于往返,理论上最小处理时间为38ms,而(三个系统)两端的理论最大处理时间为12ms。我想说,在这种情况下,期望有点过高,带宽与延迟无关。您可能有一个10 and的管道,而这些计时仍然存在。也就是说,在12毫秒内在整个欧洲大陆传输5k也是一个很高的要求。你确定你有连接能力在50ms内传输5k数据,更不用说12了吗?我在整个欧洲大陆的私有无利用电路上看到ping时间超过50ms - ping无法传输5k数据。

您将如何保持这两个不相关的服务器同步?如果你真的需要整个欧洲大陆低于50ms的延迟,上述理论上的最佳情况意味着你有12ms的时间来运行同步算法。即使只有一次查询来检查另一台服务器上的数据,也意味着您处于50ms窗口之外。如果数据不同步,您如何修复它?考虑到上面的时间安排,我看不出在50ms内同步是可能的。

我建议重新审视基本的设计要求。具体地说,为什么会有这样的要求?在整个欧洲大陆往返50ms的延迟要求通常是营销或缺乏对细节的关注的迹象。我敢打赌,如果你分析需求,你会发现这个50ms的窗口是多余的,也是不必要的。如果不是,并且数据同步实际上很重要(可能),那么将需要有人确定是否值得花费大量的额外努力来编写同步代码,或者甚至可以将其保持在50ms的窗口内。跨洲低于50ms的延迟数据同步不是一个简单的问题。

如果不需要同步,为什么不简单地运行一台服务器呢?您可以在大陆的另一端使用一个仅用于恢复目的的从属。当然,这仍然意味着在最好的情况下,您有12ms的时间来获取数据并返回。我不会指望50ms的往返操作+延迟+5k/10k跨大陆的数据传输。

票数 11
EN

Stack Overflow用户

发布于 2011-09-24 21:01:34

以光速穿越美国大约需要19毫秒。<50ms将很难实现。

http://www.wolframalpha.com/input/?i=new+york+to+los+angeles

票数 11
EN

Stack Overflow用户

发布于 2011-09-24 07:25:54

这可能最好作为客户端的一部分来处理--只要让客户端同时写入两个节点即可。写入通常不需要同步,因此发送额外的命令不会影响拥有本地节点所获得的性能。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7519971

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档