[問題] 先淘汰cache or 先寫db ?

看板Web_Design作者 (.)時間5年前 (2018/07/10 16:39), 編輯推噓2(201)
留言3則, 3人參與, 5年前最新討論串1/1
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://www.ptt.cc/bbs/Web_Design/M.1531211955.A.D12.html

07/10 16:55, 5年前 , 1F
我覺得問題不在data不一致,只要其中一邊動作失敗就有可能
07/10 16:55, 1F

07/10 16:57, 5年前 , 2F
看操作類型 1.讀多寫少 > 先刪暫存 2.讀少寫多> 先寫DB
07/10 16:57, 2F

07/13 16:04, 5年前 , 3F
開兩個thread同時進行
07/13 16:04, 3F
文章代碼(AID): #1RH72pqI (Web_Design)