小易说IT 小易说IT

Redis-Shake v4(Tair 开源版)三大 Reader 同步模式

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 就是这里)

简明对比表

表格

Reader 类型

全量方式

增量方式

支持增量

云 RDS 友好度

一致性

sync_reader

RDB

AOF 流

✅

⭐(需要开 PSync 权限)

最高

scan_reader

SCAN+DUMP

KSN

✅

⭐⭐⭐⭐⭐

中等

rdb_reader

解析 RDB 文件

无

❌

⭐⭐⭐

快照时点一致

重要提醒(v4 版本特性)

  1. RedisShake v4 不支持断点续传,连接断了会从头重来,不适合长期主从同步,定位是一次性上云迁移工具,不是长期复制组件tair-opens...

  2. 基础配置:sync_reader,直接跳过 RDB 全量阶段,只监听 AOF 增量,对应日志:syncing aof,存量 key 不会同步


本文原创作者:易君召,详见:https://www.yijunzhao.cc/about,转载请注明出处。

原文链接 https://www.yijunzhao.cc/archives/redis-shake-v4-three-reader-sync-modes

欢迎访问 https://www.yijunzhao.cc/

https://www.yijunzhao.cc/