Skip to content

Redis 上线检查清单 ​

本页把开发和运维中最容易遗漏的条件整理成上线前检查项。它不重复讲解机制;每个需要深入判断的项目都链接到对应章节。

检查开发用法 ​

避免阻塞主线程 ​

  • 生产查询不使用 KEYS,键空间扫描改用 SCAN 及其迭代版本。
  • 删除大值前先测量大小,优先评估 UNLINK 的后台回收行为。
  • 不一次性读取超大 Hash、List 或 ZSet,按字段或范围分批访问。
  • 客户端使用有上限的连接池,并配置连接超时、读取超时和重试上限。

完整的慢命令判断见性能优化,大值处理见大 Key 与热 Key,连接与重试边界见客户端连接与故障处理。

选择合适的数据模型 ​

  • 只更新部分字段时,评估 Hash 是否比整体序列化的 String 更合适。
  • 缓存 Key 明确 TTL、更新路径和淘汰责任,不把缓存当成唯一数据副本。
  • 集合运算、排行榜和位图只在数据规模与命令复杂度可接受时使用。
  • 为业务 Key 定义统一命名、所有权和生命周期,不使用无前缀的临时 Key。

数据类型语义见五种基础数据类型,缓存失效策略见缓存失效场景。

检查并发和恢复 ​

  • 锁具有过期时间、唯一持有者标识和失败重试边界。
  • 任务消费具备确认、重试、幂等和死信处理,不只依赖 BLPOP。
  • 关键写入明确故障时允许丢失的数据量,并据此选择持久化和副本策略。
  • 应用能够处理 LOADING、READONLY、连接拒绝和超时,不进行无上限重试。

锁与限流边界见并发控制场景,消息恢复见消息场景。

检查运行配置 ​

内存与淘汰 ​

  • maxmemory 已扣除操作系统、监控、网络缓冲和 fork/COW 所需空间。
  • 淘汰策略与数据用途一致:可重建缓存可以淘汰,主数据通常使用 noeviction 并扩容。
  • 淘汰次数、内存使用率和碎片率均有告警。
  • 达到 maxmemory 时,应用有明确的降级或拒绝写入行为。

参数含义见配置参数参考,策略边界见过期与淘汰。

持久化与故障转移 ​

  • RDB、AOF 或两者的组合与 RPO 一致,不把“开启持久化”当作数据不丢失的保证。
  • 已完成一次备份恢复和一次从节点数据加载演练。
  • latest_fork_usec、AOF 重写、磁盘延迟和复制偏移差已纳入监控。
  • Sentinel 或 Cluster 的故障转移已在非生产环境演练,客户端能够刷新拓扑。
  • 主从默认异步复制的丢失窗口已写入运维文档,并有对应的业务接受结论。

持久化取舍见持久化 RDB 与 AOF,备份和恢复流程见备份、恢复与升级,拓扑选择见首次生产部署。

网络与权限 ​

  • Redis 只监听回环或私网地址,端口不对公网和不可信容器开放。
  • 防火墙或安全组只允许应用与运维网段访问。
  • 每个应用使用独立 ACL 用户,命令和 Key 模式符合最小权限。
  • 密钥通过环境变量或密钥管理系统注入,日志和仓库中没有凭据。
  • 跨不可信网络时启用 TLS,并验证证书、主机名和轮换流程。
  • rename-command 如有使用,只作为减少误操作的补充措施。

网络、ACL、TLS 和凭据轮换见安全与访问控制,部署入口见首次生产部署。

检查可观测性 ​

  • 延迟使用分位数和慢日志观察,不仅看平均值。
  • 监控 QPS、网络带宽、连接数、命中率、复制延迟和持久化状态。
  • 每个告警都有负责人、阈值依据、处理步骤和升级条件。
  • 能按实例、Key 前缀或客户端定位流量突增,不只保留聚合曲线。
  • 已建立正常负载基线,容量评估来自真实数据而不是示例值。

指标定义和告警设计见监控告警。

检查集群约束 ​

  • 跨槽多 Key 操作已经消除,或通过哈希标签将相关 Key 放入同一槽。
  • Key 分布不会长期集中到单个主节点,迁移前后都检查槽分布。
  • 大 Key 在扩缩容前已拆分,迁移窗口经过压测。
  • 客户端正确处理 MOVED、ASK 和拓扑刷新,不在异常后无限重定向。

集群机制见集群模式。

记录上线结论 ​

类别通过条件结果
容量数据增长、内存、磁盘和带宽均有余量□
性能峰值负载下延迟和错误率达到业务目标□
数据RPO、RTO、备份和恢复演练已有记录□
高可用故障转移和客户端拓扑刷新经过验证□
安全网络、ACL、TLS 和密钥注入检查完成□
告警核心指标有阈值、负责人和处理步骤□
回滚配置变更、版本升级和流量回退方案明确□
降级Redis 不可用时应用行为符合预期□

任何一项无法确认时,应记录风险、责任人和截止时间;不要用“默认配置可用”代替验证结果。

Released under the MIT License.