weekly
weekly copied to clipboard
【开源软件自荐】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拓扑变更(如加减节点,主从切换等等),以更改一致性策略和调整其他功能策略