Redis 跨云迁移执行手册
Key 数相同,也可能在 TTL、类型、槽位和重放语义上不一致
本手册适用于开源 Redis 单机、主从和 Cluster 与中国云兼容缓存服务之间的常见迁移。兼容 Redis 的云产品可能在命令、模块、持久化、代理、集群和淘汰策略上存在差异,不能只按版本号判断兼容。
| 角色 | 迁移要求 | 回滚重点 |
|---|---|---|
可重建缓存 | 可以从数据库或消息重新预热 | 防止缓存击穿、雪崩和旧值污染 |
会话或令牌 | 需要保留 TTL 与失效语义 | 双端会话、强制退出和安全边界 |
队列、计数或锁 | 高度依赖命令原子性和顺序 | 非幂等重放、重复消费和锁安全 |
事实数据存储 | 必须按数据库级别设计持久化与对账 | 新写入合并、数据丢失和恢复证据 |
如果 Redis 只是可重建缓存,优先评估新建目标、灰度预热和逐步切流;这通常比复制全部过期缓存更可控。
| 方法 | 适用情况 | 关键限制 |
|---|---|---|
RDB 导入 | 可停写、目标明确支持导入、数据规模可控 | 快照时点后的写入不会自动追平 |
RedisShake | 自建或网络可达、执行一次性全量加增量迁移 | 4.x 不支持断点续传或拓扑变化感知,中断可能需要重新全量 |
目标云迁移服务 | 目标为托管服务、需要全量加增量 | 支持的源拓扑、命令、对象和网络随产品变化 |
重新预热 | 纯缓存、数据可从权威源重建 | 需要容量、热点和回源保护方案 |
Redis 官方说明 RDB 是时点快照,AOF 记录写操作;两者在数据损失窗口、恢复速度和运行开销上不同,不能把持久化文件存在等同于迁移可恢复。Redis 持久化
- 完整版本、发行版、单机/主从/Cluster/代理拓扑与分片数量
- DB 数量、Key 总数、内存占用、平均与峰值写入、网络吞吐
- String、Hash、List、Set、Sorted Set、Stream 和模块数据类型
- TTL 分布、永久 Key、临近过期 Key、淘汰策略和最大内存
- Lua、事务、Pub/Sub、锁、队列、非幂等命令和批量命令
- hash tag、槽位分布、热 Key、大 Key、客户端重定向和连接池行为
- RDB/AOF 策略、复制 backlog、PSYNC、备份、恢复与告警
- 使用专用迁移账号或 ACL 用户,仅开放任务所需命令和 Key 范围。
- 迁移端放在受控网络中;公网连接需启用 TLS、来源限制和临时白名单。
- 密码、TLS 私钥和云凭据放入权限受限配置或密钥服务,不写入命令行与报告。
- 迁移前生成独立备份并验证隔离恢复;同步任务不是备份。
- 目标实例保持空库且不接受业务写入,直到割接门禁通过。
- 对生产版本、拓扑、命令和模块建立兼容矩阵,不支持项明确过滤、转换或阻断。
- 用脱敏样本迁移全部数据类型,检查序列化、TTL、过期、Lua 与事务行为。
- 压测全量期间的源端 CPU、fork、延迟、网络和目标端写入限速。
- 模拟网络中断、重新全量、目标限流、内存逼近阈值和源端复制 backlog 不足。
- 对 List 等非幂等结构验证重试是否产生重复或顺序变化。
- 演练停写、追平、客户端切换、缓存预热、回切和源端只读观察。
- RDB 基线生成前评估 fork 对内存与延迟的影响,大实例优先在副本执行。
- 持续同步必须监控复制偏移、延迟、重连、错误命令、过滤数量和目标内存。
- 延长复制 backlog 前计算内存占用,确保最长故障恢复期间仍可续传。
- 不在迁移过程中随意修改 Key 过滤、目标前缀、DB 映射或集群拓扑。
- 目标端禁止业务写入,避免重复列表项、计数偏差和冲突覆盖。
RedisShake 提供 Sync、Scan 和 RDB Reader 等模式,但 4.x 不支持断点续传,也不适合长期同步;生产配置必须以实际版本重新核验。RedisShake 快速上手、RedisShake 迁移模式、断点续传限制
- 停止所有写入口、队列消费者、定时任务和会更新缓存的后台任务。
- 等待增量延迟和复制偏移达到批准阈值,记录最终时间和位点。
- 比较 Key 数、类型、TTL 分布、核心样本和应用业务结果。
- 切换少量客户端,观察连接、超时、重定向、命令错误、命中率和延迟。
- 逐步放量;源端保持隔离或只读,不立即关闭同步或删除备份。
回滚前必须先停止目标端写入。若目标端已产生锁、队列、计数或会话变化,不能简单把连接切回源端;应按业务选择丢弃可重建缓存、导出差异、应用补偿或只前进修复。
- 每个 DB 或分片的 Key 数、类型分布、内存与 TTL 分布
- 核心 Key 抽样值、编码、过期时间和业务语义
- 大 Key、热 Key、hash tag、槽位、Lua、事务、Stream 和模块命令
- 命中率、淘汰、延迟、连接数、错误、复制状态和内存碎片
- 备份、隔离恢复、客户端切换、回滚与缓存预热证据
使用数据库迁移验收方法保存证据。
核验日期:2026-07-14。正式任务前重新检查源拓扑、目标产品、版本、命令、模块、网络、全量/增量、限速和计费。本手册未声称所有兼容 Redis 产品都具有相同语义。
Built with