首页/数据/数据库速查/缓存 TTL 设计原则
本包目录(495 条)
MySQL 基础与连接36 条SQL 语法52 条用户与权限21 条备份与恢复56 条主从复制与高可用53 条性能与调优57 条Redis 命令96 条
Redis 运维与场景124 条

缓存 TTL 设计原则

TTL 是兜底也是治理工具:热点短、冷数据长、加随机防雪崩;无 TTL 的键(除非业务必需)迟早变成内存事故。

数据库速查数据更新于 2026-10-12

分层 TTL 示例

分层 TTL 示例
SET cfg:site EX 600           # 配置类:10 分钟(变更少)
SET user:1001 EX 300           # 会话/资料:5 分钟
SET hot:rank EX 30             # 热榜:30 秒(可容忍略旧)
SET promo:banner EX 60         # 活动:1 分钟
# 加随机抖动:ttl = base ± 20%
原则所有缓存键必须有 TTL(或由业务明确豁免)
抖动同批数据随机化过期时间
更新重要数据变更时主动删缓存
审计 TTL:定期用 SCAN 抽样(或 info keyspace 的 avg_ttl 视图)找出无 TTL 的缓存键;监控 avg_ttl 突降说明大量键集中过期。

易错点

  • 「缓存永久有效」= 内存泄漏 + 脏数据永久化
  • TTL 精确到秒批量设置:到期风暴,需随机化

数据来源与参考

  • Redis 官方文档: EXPIRE
  • Redis 官方文档: 缓存最佳实践

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌