说说常见的缓存更新策略?
有cache aside,read/write through ,write back三种
cache aside
对于写操作,先更新数据库,后删除缓存,对于读操作,先访问缓存,有返回,没有查询数据库再保存到缓存中。
适用于读多写少的场景,不适合写多的场景,因为写多会频繁删除缓存
如果对缓存命中率有很高要求,有两种方案:
- 更新数据库同时更新缓存,并且加上互斥锁
- 更新数据库同时更新缓存,但是缓存过期时间短
read/write through
只对缓存操作,对数据库的操作交给缓存组件管理。
read through
查询是否在缓存中,在返回,不再由组件查询,保存缓存并且返回结果
write through
查询待更新数据是否在缓存中
在,更新缓存,由缓存组件对数据库更新
不在,直接更新数据库
使用本地缓存可以考虑使用这种策略
Write Back(写回)策略
更新数据时,更新缓存并认为缓存中的数据认为是脏的,对于数据库更新会通过批量异步更新
读取数据时,有返回,没有读取数据库并设置缓存
标签:缓存,read,数据库,常见,更新,write,through From: https://www.cnblogs.com/xiuer211/p/17697270.html