缓存模式

旁路缓存(Cache-Aside)最常见:读未命中查库回填,写时删除缓存;读穿、写穿、写回各有取舍,写回吞吐高但可能丢数据。

模式

模式读行为写行为
旁路命中返回,未命中查库回填更新库后删除缓存
读穿缓存层代为查库回填同上,逻辑集中在缓存层
写穿同旁路同步写缓存与库
写回同旁路先写缓存,异步刷库
删除缓存比更新缓存更稳妥:并发更新与读回填交错时,更新缓存易留下旧值。

易错点

  • 先删缓存再写库,并发读回填旧值
  • 写回模式未评估宕机丢数据的业务后果

数据来源与参考

  • AWS 白皮书:Database Caching Strategies Using Redis
  • Redis 文档:缓存模式(Caching patterns)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌