分布式之資料庫和快取雙寫一致性方案解析

2021-08-20 04:37:16 字數 333 閱讀 8290

對每種策略進行缺點分析;

針對缺點給出改進方案;

先刪除快取,再更新資料庫

先更新資料庫,再刪除快取

執行緒b更新了資料庫

執行緒b更新了快取

執行緒a更新了快取

請求b查詢發現快取不存在

請求b去資料庫查詢得到舊值

請求b將舊值寫入快取

請求a將新值寫入資料庫

public void write(string key, object data)
再寫資料庫(這兩步和原來一樣)

休眠1秒,再次淘汰快取

推薦個分布式事務解決方案

分布式之資料庫和快取雙寫一致性方案解析

為什麼寫這篇文章?首先,快取由於其高併發和高效能的特性,已經在專案中被廣泛使用。在讀取快取方面,大家沒啥疑問,都是按照下圖的流程來進行業務操作。但是在更新快取方面,對於更新完資料庫,是更新快取呢,還是刪除快取。又或者是先刪除快取,再更新資料庫,其實大家存在很大的爭議。目前沒有一篇全面的部落格,對這幾...

分布式之資料庫和快取雙寫一致性方案解析

首先,快取由於其高併發和高效能的特性,已經在專案中被廣泛使用。在讀取快取方面,大家沒啥疑問,都是按照下圖的流程來進行業務操作。但是在更新快取方面,對於更新完資料庫,是更新快取呢,還是刪除快取。又或者是先刪除快取,再更新資料庫,其實大家存在很大的爭議。目前沒有一篇全面的部落格,對這幾種方案進行解析。於...

分布式之資料庫和快取雙寫一致性方案解析

首先,快取由於其高併發和高效能的特性,已經在專案中被廣泛使用。在讀取快取方面,大家沒啥疑問,都是按照下圖的流程來進行業務操作。但是在更新快取方面,對於更新完資料庫,是更新快取呢,還是刪除快取。又或者是先刪除快取,再更新資料庫,其實大家存在很大的爭議。目前沒有一篇全面的部落格,對這幾種方案進行解析。於...