作者sean72 (.)
看板Web_Design
标题[问题] 先淘汰cache or 先写db ?
时间Tue Jul 10 16:39:10 2018
https://zhuanlan.zhihu.com/p/38475787
这篇认为应该先invalidate cache 再写db
https://blog.csdn.net/flysqrlboy/article/details/79427618#t21
这篇认为应该先写db 再invaludate cache
请问哪个正确呢?
我觉得是case 2正确
case1:
user1 invalidate cache, while updating db(未完成)
user2 此时读资料,cache miss,去读资料库,得到旧数据,
并用旧数据update cache
user1 完成db更新
此时cache存着旧数据,db新数据,数据不一致
case2:
user1 update db (未完成)
user2 此时读资料,在cache读了旧资料,离开
user1 finish db and update cache
以後的user都可以读到最新数据,只有user2读了旧数据,但仅只一次,无伤大雅
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 172.89.32.145
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Web_Design/M.1531211955.A.D12.html
1F:→ ssccg: 我觉得问题不在data不一致,只要其中一边动作失败就有可能 07/10 16:55
2F:推 nottt: 看操作类型 1.读多写少 > 先删暂存 2.读少写多> 先写DB 07/10 16:57
3F:推 RD: 开两个thread同时进行 07/13 16:04