跳到正文
Elaine Blog
返回

Redis 生产变更与数据迁移

Redis 与缓存工程

Redis 生产变更要把数据面、客户端和故障恢复放在同一份运行手册中。先验证兼容性和回滚,再灰度迁移流量;“节点已启动”不是完成标准。

Table of contents

Open Table of contents

变更前建立证据包

记录当前版本、拓扑、槽位、数据量、命中率、P99、BigKey、客户端版本、命令使用和持久化状态。阅读目标版本的 Breaking Changes,并用流量回放验证脚本、事务、序列化、Cluster 重定向和超时行为。

备份只是文件;在隔离环境恢复并校验 Key 数量、TTL 分布、抽样值和业务读路径后,才算可用回滚材料。

扩容与迁槽

Cluster 扩容通常新增节点、分配副本并迁移槽位。迁槽期间客户端会收到 ASK/MOVED,必须使用支持 Cluster 的连接库。限制并发迁槽速度,持续观察源/目标节点 CPU、网络、延迟、内存和复制状态。

热点不会因平均分槽自动消失;单个 HotKey 仍只由一个主分片服务。扩容前先确认瓶颈是总容量还是单 Key 热点。

双读双写迁移的顺序

建目标集群 → 全量复制 → 持续增量
  → 影子读校验 → 灰度读新 → 切写 → 观察 → 停旧链路

双写会遇到部分失败、乱序和重试,不能只比较调用成功率。给值携带版本或事件位置,定期比较 Key 数量、TTL、值摘要和业务指标。回滚条件要在切换前定义,例如错误率、P99 或数据差异超过阈值立即回旧集群。

安全与配置收敛

使用 ACL 为应用分配独立账号,只开放所需 Key Pattern 和命令类别;管理面与数据面凭证分离;启用传输加密和凭证轮换。禁用危险命令不能替代网络隔离、审计和最小权限。

变更结束后删除临时双写权限和复制链路,归档证据,更新拓扑、容量和恢复手册,并安排一次节点故障和备份恢复演练。

本阶段检查点

完成本章后,你应能按访问模式选类型,解释 Redis 延迟来源,设计带 Fence Token 的锁,治理缓存一致性与热点,并用容量和恢复证据评审生产变更。

下一步

当前 07.Redis与缓存工程 阶段到此完成。按照暂停约定,本轮不进入 08.分布式系统、协调与消息;恢复目标后再从 CAP、PACELC 与一致性模型开始。


分享这篇文章:

上一篇
Redis 性能诊断与容量规划
下一篇
搜索系统与 Elasticsearch 基础模型