说说常见的缓存更新策略?

说说常见的缓存更新策略?

有cache aside,read/write through ,write back三种

cache aside

对于写操作,先更新数据库,后删除缓存,对于读操作,先访问缓存,有返回,没有查询数据库再保存到缓存中。

适用于读多写少的场景,不适合写多的场景,因为写多会频繁删除缓存

如果对缓存命中率有很高要求,有两种方案:

  1. 更新数据库同时更新缓存,并且加上互斥锁
  2. 更新数据库同时更新缓存,但是缓存过期时间短

read/write through

只对缓存操作,对数据库的操作交给缓存组件管理。

read through

查询是否在缓存中,在返回,不再由组件查询,保存缓存并且返回结果

write through

查询待更新数据是否在缓存中

在,更新缓存,由缓存组件对数据库更新

不在,直接更新数据库

使用本地缓存可以考虑使用这种策略

Write Back(写回)策略

更新数据时,更新缓存并认为缓存中的数据认为是脏的,对于数据库更新会通过批量异步更新

读取数据时,有返回,没有读取数据库并设置缓存

posted @   xiuer211  阅读(76)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
点击右上角即可分享
微信分享提示