高并发下的缓存策略?
发布于
一、缓存层级
- L1:浏览器缓存。
- L2:CDN 缓存。
- L3:Nginx/网关缓存。
- L4:应用本地缓存(Caffeine、Guava)。
- L5:分布式缓存(Redis)。
- L6:数据库。
二、缓存更新策略
- Cache Aside:应用先查缓存,没有查数据库,写入缓存。删除缓存(不是更新)。最常用。
- Read/Write Through:缓存层统一处理读写。
- Write Behind:异步写回数据库,性能高但可能丢数据。
三、热点数据
- 热点 key 永不过期 + 逻辑过期 + 异步刷新。
- 本地缓存挡热点,减少 Redis 压力。
四、缓存一致性
- 延迟双删:更新数据库 → 删缓存 → 延迟 500ms → 再删缓存。
- 订阅 binlog(canal)异步删缓存。
- 最终一致即可,不追求强一致。
五、缓存穿透/击穿/雪崩
见 Redis 相关题目。