1. 程式人生 > 實用技巧 >【併發】高併發下先操作資料庫還是先操作快取?

【併發】高併發下先操作資料庫還是先操作快取?

原文寫的很好:高併發下先操作資料庫還是先操作快取

最終決定的方案如下

在分散式系統中,快取和資料庫同時存在時,如果有寫操作的時候,先操作資料庫,再操作快取。
在這裡插入圖片描述

  • (1)讀取快取中是否有相關資料

  • (2)如果快取中有相關資料value,則返回

  • (3)如果快取中沒有相關資料,則從資料庫讀取相關資料放入快取中key->value,再返回

  • (4)如果有更新資料,則先更新資料,再刪除快取

  • (5)為了保證第四步刪除快取成功,使用binlog非同步刪除

  • (6)如果是主從資料庫,binglog取自於從庫

  • (7)如果是一主多從,每個從庫都要採集binlog,然後消費端收到最後一臺binlog資料才刪除快取