穿透类缓存Cache使用,这一篇就够了!
架构师之路共
1391字,需浏览
3分钟
·
2021-12-28 16:23
有些成熟的技术方案,用不着创新,固化下来的模式(pattern),学就完了。例如,穿透类缓存的使用,“Cache Aside Pattern”就是很好的实践沉淀,故今天聊一聊Cache Aside Pattern。画外音:就好像“设计模式”,它就是沉淀下来的设计方法。什么是“Cache Aside Pattern”?旁路缓存方案的经验实践,这个实践又分读实践,写实践。(3)如果,cache miss,则访问db,并将数据set回缓存;(1)先从cache中尝试get数据,结果miss了;(3)最后把数据set回cache,方便下次读命中;(2)缓存,采用delete淘汰,而不是set更新;Cache Aside Pattern为什么建议淘汰缓存,而不是更新缓存?在1和2两个并发写发生时,由于无法保证时序,此时不管先操作缓存还是先操作数据库,都可能出现:(2)请求2先set了缓存,请求1后set了缓存;所以,Cache Aside Pattern建议,delete缓存,而不是set缓存。Cache Aside Pattern为什么建议先操作数据库,再操作缓存?如果先操作缓存,在读写并发时,可能出现数据不一致。在1和2并发读写发生时,由于无法保证时序,可能出现:所以,Cache Aside Pattern建议,先操作数据库,再操作缓存。Cache Aside Pattern方案存在什么问题?答:如果先操作数据库,再淘汰缓存,在原子性被破坏时:(3)如果,cache miss,则访问db,并将数据set回缓存;
浏览
23点赞
评论
收藏
分享
手机扫一扫分享
分享
举报
点赞
评论
收藏
分享
手机扫一扫分享
分享
举报