Redis-Shake v4(Tair 开源版)三大 Reader 同步模式:sync_reader(PSync)、scan_reader(SCAN+KSN)、rdb_reader(RDB 离线导入)
1. sync_reader(PSync 模式,官方首选)
[[reader]]
type = "sync_reader"
原理:Shake 伪装成 Redis 从节点,走原生 PSync 复制协议
全量:拉取 RDB 快照
增量:持续消费 AOF 命令流(就是你日志里
syncing aof)
✅ 优点:一致性最好、源库压力小、不停机迁移首选
❌ 限制:目标云 Redis(阿里云 RDS 等)默认屏蔽 PSync,需要工单申请复制权限;代理版 / 集群 proxy 架构大多不支持 PSync
适合:自建 Redis、已经开通 PSync 权限的云实例
2. scan_reader(SCAN 模式,云 Redis 最常用,适配你阿里云 RDS 场景)
[[reader]]
type = "scan_reader"
原理:
全量:循环
SCAN + DUMP遍历所有 key,RESTORE写入目标增量:KSN(key 变更通知)监听 key 变化,不是 AOF 流
✅ 优点:不需要 PSync 权限!阿里云 RDS、大部分云托管 Redis 都能用
❌ 缺点:
全量阶段对源 Redis 压力更大(大量 scan/dump)
一致性弱于 PSync:scan 遍历期间新增 key 有概率漏同步
大 key 场景容易超时、拖慢进度
适合:云 Redis、PSync 被禁用的场景(你这个本地→阿里云 RDS 优先选这个)
3. rdb_reader(离线 RDB 导入,纯全量、无增量)
[[reader]]
type = "rdb_reader"
file_path = "./dump.rdb"
原理:直接读取本地 RDB 备份文件,解析回放写入目标
✅ 优点:完全不在线读源 Redis,零源库压力
❌ 缺点:只有全量,没有增量同步,跑完直接退出
适合:停机迁移、备份恢复、离线数据导入
补充:Writer 写入端(redis_writer)
Writer 不分同步模式,只区分实例类型:
RedisStandaloneWriter单机RedisClusterWriter集群 支持单机、哨兵、集群、Tair 模块命令透传、命令过滤、QPS 限流(你配置的max_qps=300000就是这里)
简明对比表
表格
重要提醒(v4 版本特性)
RedisShake v4 不支持断点续传,连接断了会从头重来,不适合长期主从同步,定位是一次性上云迁移工具,不是长期复制组件tair-opens...
基础配置:
sync_reader,直接跳过 RDB 全量阶段,只监听 AOF 增量,对应日志:syncing aof,存量 key 不会同步
本文原创作者:易君召,详见:https://www.yijunzhao.cc/about,转载请注明出处。
原文链接
欢迎访问