适用场景

缓存用好了是性能利器,用不好就是事故来源:缓存雪崩打穿数据库、热点 key 打满单节点、数据不一致引发业务纠纷。

配置步骤(缓存一致性策略)

# 常用:先更新 DB,再删除缓存(Cache Aside)
# 高一致要求:延迟双删(更新后延迟再删一次)
# 或订阅 binlog(Canal 类)异步刷新缓存
# 关键:给缓存设置合理过期时间作为兜底

关键参数与建议

  • 分层:本地缓存(进程内)+ 分布式缓存(Redis),热点数据本地兜底
  • 穿透:空值缓存 + 布隆过滤器,防止无效请求打到底层
  • 击穿:互斥锁或逻辑过期,避免单 key 高并发重建
  • 雪崩:过期时间加随机抖动,集群多副本,限流兜底
  • 一致性:先更新数据库再删缓存(或延迟双删),重要数据设短过期

容易踩的坑

  • 先删缓存再更新 DB,高并发下读到旧值
  • 无过期时间,缓存与数据库长期不一致
  • 全量刷新缓存造成瞬时压力

验证与巡检

# 验证:并发更新与读取测试,观察是否读到旧值
  • 巡检:一致性方案文档化、有过期兜底

小结

缓存架构的验收:压测下数据库 QPS 不暴涨、热点 key 不集中在单节点、缓存失效时业务可降级。做到这三点,缓存才算可靠。

> 说明:文中命令为通用写法,不同型号/版本可能略有差异,落地前请对照设备实际版本的官方文档;带外管理与安全设备变更建议先在测试设备验证。