请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

cache aside模式的中针对更新流程的一些疑问

老师您好,在cache aside模式中,针对更新流程是先更新数据库,然后在删除缓存。请问为什么不是直接更新缓存,而是清楚缓存了?因为如果是清楚缓存,那么如果有大量并发过来的时候,发现缓存是空的,势必会对数据库造成压力,但是直接更新就不会有上面这个问题,但是最终走的是删除而不是更新,是因为更新会带来其他的问题么?期待您的解答,谢谢

正在回答 回答被采纳积分+3

1回答

大能老师 2023-03-17 09:44:49

先更新数据库,然后在删除缓存是为了保证缓存一致性的问题。

如果先更新数据库后更新缓存会出现一下问题:

https://img1.sycdn.imooc.com//szimg/6413c584095311cf26101368.jpg

最后缓存数据库不一致,后续课程会详细进行解释,请同学深入后面课程继续学习哈,然后针对大并发对缓存造成的问题,课程可以相应讲解,请同学继续学习,有疑问随时交流哈

0 回复 有任何疑惑可以回复我~
  • 提问者 慕斯卡3278568 #1
    了解了,谢谢老师,后面的课程确实是提到了,数据库和redis的操作不是原子性的,就是在更新数据库后,由于GC等因素,导致对redis的操作可能会有延迟,所以存在把脏数据更新到redis的可能性。谢谢老师详细的解答
    回复 有任何疑惑可以回复我~ 2023-03-18 23:19:23
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信