文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

穿透类缓存Cache使用,这一篇就够了!

2024-12-02 11:45

关注

画外音:就好像“设计模式”,它就是沉淀下来的设计方法。

[[442060]]

什么是“Cache Aside Pattern”?

旁路缓存方案的经验实践,这个实践又分读实践,写实践。

画外音:与旁路缓存对应的,是穿透缓存。

读实践是怎么样的?

对于读请求:

(1)先读cache,再读db;

(2)如果,cache hit,则直接返回数据;

(3)如果,cache miss,则访问db,并将数据set回缓存;

如上图:

(1)先从cache中尝试get数据,结果miss了;

(2)再从db中读取数据,从库,读写分离;

(3)最后把数据set回cache,方便下次读命中;

写实践是怎么样的?

对于写请求:

(1)淘汰缓存,而不是更新缓存;

(2)先操作数据库,再淘汰缓存;

如上图:

(1)第一步要操作数据库,第二步操作缓存;

(2)缓存,采用delete淘汰,而不是set更新;

Cache Aside Pattern为什么建议淘汰缓存,而不是更新缓存?

如果更新缓存,在并发写时,可能出现数据不一致。

如上图所示,如果采用set缓存。

在1和2两个并发写发生时,由于无法保证时序,此时不管先操作缓存还是先操作数据库,都可能出现:

(1)请求1先操作数据库,请求2后操作数据库;

(2)请求2先set了缓存,请求1后set了缓存;

导致,数据库与缓存之间的数据不一致。

所以,Cache Aside Pattern建议,delete缓存,而不是set缓存。

Cache Aside Pattern为什么建议先操作数据库,再操作缓存?

如果先操作缓存,在读写并发时,可能出现数据不一致。

如上图所示,如果先操作缓存。

在1和2并发读写发生时,由于无法保证时序,可能出现:

(1)写请求淘汰了缓存;

(2)写请求操作了数据库(主从同步没有完成);

(3)读请求读了缓存(cache miss);

(4)读请求读了从库(读了一个旧数据);

(5)读请求set回缓存(set了一个旧数据);

(6)数据库主从同步完成;

导致,数据库与缓存的数据不一致。

所以,Cache Aside Pattern建议,先操作数据库,再操作缓存。

Cache Aside Pattern方案存在什么问题?

答:如果先操作数据库,再淘汰缓存,在原子性被破坏时:

(1)修改数据库成功了;

(2)淘汰缓存失败了;

导致,数据库与缓存的数据不一致。

Cache Aside Pattern总结:

对于读请求:

(1)先读cache,再读db;

(2)如果,cache hit,则直接返回数据;

(3)如果,cache miss,则访问db,并将数据set回缓存;

对于写请求:

(1)淘汰缓存,而不是更新缓存;

(2)先操作数据库,再淘汰缓存;

任何技术方案的设计,都是折衷。

【本文为51CTO专栏作者“58沈剑”原创稿件,转载请联系原作者】

戳这里,看该作者更多好文 

 

 

来源:51CTO专栏内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯