| name | caching-strategy |
| description | 缓存策略参考 —— 多级缓存架构、失效策略、缓存穿透/击穿/雪崩防护 |
| category | 数据/性能 |
| loading | on-demand |
| triggers | {"keywords":["缓存","cache","redis","缓存策略","缓存穿透","缓存雪崩","性能优化"]} |
缓存策略
概述
提供多级缓存架构的设计原则和常见陷阱的防护策略,覆盖浏览器缓存、CDN、应用缓存、数据库缓存全链路。
使用场景
- API 响应慢,需要引入缓存加速
- 高并发场景下保护数据库不被压垮
- 热点数据频繁读取导致数据库负载过高
- 设计缓存键命名规范和过期策略
核心原则
- 缓存是优化而非功能:系统在缓存失效时应降级到正常查询,而非报错或崩溃。
- 就近缓存:数据离用户越近越好 —— 浏览器 → CDN → 应用内存 → 分布式缓存 → 数据库。
- 设置合理的 TTL:根据数据变更频率设定过期时间。变化越频繁的数据 TTL 越短。
- 显式失效优先于被动过期:数据变更时主动清除缓存,而非仅依赖 TTL 等待过期。
- 防止缓存穿透:对不存在的数据缓存空值(短 TTL),或使用布隆过滤器拦截非法查询。
常见模式
- Cache-Aside:读——先查缓存,miss 则查库并回填;写——更新库后删缓存
- Read-Through / Write-Through:缓存层封装库访问,对调用方透明
- Write-Behind:异步写库,适合写密集型且能容忍短期数据丢失的场景
- 多级缓存:本地缓存(Caffeine)→ 分布式缓存(Redis)→ 数据库
检查清单