注意:说明:
注意:全球复制目前在架构升级中,旨在进一步提升系统的高可用性与跨地域容灾能力。预计于2026年12月重新开放购买,感谢你的耐心等待。
一、为什么需要全球复制?
Redis 原生代码在跨地域复制的场景中,当本端实例写入量过大或者长时间断开复制时,Master 节点的 backlog 复制日志可能无法满足断点复制日志的续传,导致远端实例只能进行全量复制,而全量复制同步数据将使得远端实例访问受阻,严重影响远端实例的正常业务。具体信息,请参见 Develop with Redis。
同时,Redis 原生的复制方案在 backlog 复制日志中没有标记写入节点,当本端与远端需进行双向复制时,容易引起复制环路,造成数据错乱。
二、实现机制
全球复制是腾讯云在开源社区版本的内核中新增的功能,完全兼容 Redis 4.0 和 Redis 5.0 的命令。基于原有的主从复制方案,新增了一个日志文件进行远端复制,保证复制组内任意地域实例数据的最终一致。
·在远端节点未复制日志文件之前,本端节点将保留日志文件,保证远端复制的连续性。
·日志文件包含 ServerID,标识日志文件写入节点 ID,支持远端与本端双向复制,避免复制环路。
·日志文件包含命令执行时间戳和操作 KEY 的版本号,用于解决命令冲突的问题。
三、灾备场景
腾讯云分布式缓存数据库 Redis 全球复制方案,在复制组中配置一个主实例,在多地部署只读实例,不同地域的灾备实例从主实例进行数据复制。用户便可以在本地进行数据访问,改善数据访问的响应速度,提升用户体验,提高数据可用性,增强数据安全性。
注意:说明:
四、多活方案
在用户跨地域漫游、多地数据合并等场景,你需要将一份数据分发到多个地域,需在任意地域进行数据读取和更新,或者需要将多个地域的数据合并为一份。此时,数据库需要具备多地写入能力。全球复制组中可以配置多主架构,数据可以在任何一个主实例写入,复制组内的其他地域的主实例将同步数据。