在不同的计算机上使用Redis Replication(多主机)

 00我就是我00乐乐 发布于 2022-12-08 18:42

我想在我的应用程序中使用Redis作为分布式缓存.其中一个要求是具有Active Active可用性,这意味着我在一个地方有一个数据中心,在另一个地方有另一个数据中心.如果一个数据中心发生故障,我希望我的用户什么都感觉不到,并且能够从第二个站点的第一个数据中心获取所有数据并继续工作 - 在第二个站点上也有一个主站.可能吗?

1 个回答
  • 你要求一个主动 - 主动,又称多主,解决方案,但你的问题表明你可能不需要它.

    如果您只需要其中一个数据库可用于写入,即所有写入始终都是写入,则可以使用Redis的标准主从复制来实现.指示您的应用程序使用主服务器进行写入,并且(可能)让您的从服务器也提供一些读取服务.如果主服务器出现故障,请将第二个DC中的从服务器升级为新主服务器,并重定向您的应用程序/客户端以使用它.Redis'Sentinel可以实现监控和推广.

    在实现此类设置时,您需要考虑一些事项.首先请注意Redis的复制是异步的,因此根据主服务器的负载,写入量和复制的网络链接质量,如果发生故障转移,您可能会丢失一些最新的更新.其次,在同一主题上,DC间网络链路可能容易受到带宽限制和延迟增加的影响 - 您应该配置Redis来处理这个问题,并且可能对该流量使用压缩(例如通过SSH隧道).最后,要准确检测故障,您需要在不同位置至少拥有3个Sentinels.但尽管面临这些挑战,这一切都是可行的.

    也就是说,Redis 目前不支持多主设置,其中可以对任何数据库任意执行写入.如果这实际上是您所需要的,请考虑使用其他解决方案.

    注意:根据您的具体要求,如果您可以保证对不同DC的写入是互斥的(即每个DC仅写入另一个DC未共享的密钥的不同子集),则可以使用两个数据库与主服务器在每个DC和从属在另一个.

    2022-12-11 02:07 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有