作者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/m.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