首页/数据/数据库速查/多级缓存(本地 + Redis)
Redis 运维与场景124 条

多级缓存(本地 + Redis)

本地缓存挡第一层(纳秒级、容量小)、Redis 做分布式第二层;一致性靠事件(Pub/Sub、键空间通知、专用失效通道)与短 TTL 兜底。

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

结构示意

结构示意
请求 -> 本地缓存(Guava/Caffeine, 秒级 TTL)
       命中 -> 返回
       未命中 -> Redis
              命中 -> 写回本地并返回
              未命中 -> 数据库 -> 写 Redis + 本地
本地缓存单机 LRU/容量受限,命中即零网络
失效通道Pub/Sub 广播 key 变更,各节点删本地
TTL本地缓存 TTL 要短(如 1-5 秒)
本地缓存最大的风险是「各节点数据不一致」:所有写路径必须走统一的失效广播,且把 TTL 设短作为兜底。

易错点

  • 本地缓存无失效机制:deploy 前数据要等 TTL 才更新
  • 本地缓存容量不设上限:热点扩散时把应用内存吃光

数据来源与参考

  • Redis 官方文档: 客户端缓存
  • Caffeine 文档

相关工具

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