redis-GunYu
Redis-GunYu是一款开源的Redis跨集群/实例实时数据同步工具,支持断点续传、分片不对称同步、拓扑变化监控等功能,具有高可用性、低延迟和数据一致性保障。适用于数据迁移、拆分与合并等场景。
经常会有一些需求需要进行跨集群,跨实例进行数据实时同步、数据迁移、数据拆分与合并。我们开源了公司基础架构团队开发的一款这样的redis数据治理的产品。仓库地址:https://github.com/mgtv-tech/redis-GunYu欢迎大家star,PR从产品需求上,对redis-GunYu和几个主流工具进行比较| 功能点 | redis-shake/v2 | DTS | xpipe | redis-GunYu || ------- | -------------- | --- | ----- | ----------------- || 断点续传 | Y(无本地缓存) | Y | Y | Y || 支持分片不对称 | N | Y | N | Y || 拓扑变化 | N | N | N | Y || 高可用 | N | N | Y | Y || 过滤 | Y | Y | Y | Y || 数据一致性 | 最终 | 弱 | 弱 | 最终(分片对称) + 弱(不对称) |大禹还有哪些优势呢?* 对稳定性影响更小 * 复制优先级:可指定优先从从库进行复制或主库复制 * 本地缓存 + 断点续传:最大程度减少对源端redis的影响 * 可以对RDB中的大key进行拆分同步 * 更低的复制延迟:在保证一致性的前提下,并发地进行数据回放* 数据安全性与高可用 * 本地缓存支持数据校验 * 工具高可用:支持主从模式,以最新记录进行自主选举,自动和手动failover;工具本身P2P架构,将宕机影响降低到最小* 对redis限制更少 * 支持源和目标端不同的redis部署方式,如cluster或单实例 * 兼容源和目的redis不同版本,支持从redis4.0到redis7.2* 数据一致性策略更加灵活,自动切换 * 当源端和目标端分片信息一致时,采用伪事务方式批量写入,实时更新快照信息,最大可能地保证一致性 * 当源端和目标端分片不一致时,采用定期更新快照信息* 运维更加友好 * API:可以通过http API进行运维操作,如强制全量复制、同步状态、暂停同步等 * 监控:监控指标更丰富,如时间与空间维度的复制延迟指标 * 数据过滤:可以对key、db、命令等进行过滤 * 拓扑变化监控:实时监听源和目标端redis拓扑变更(如加减节点,主从切换等等),以更改一致性策略和调整其他功能策略