對每種策略進行缺點分析;
針對缺點給出改進方案;
先刪除快取,再更新資料庫
先更新資料庫,再刪除快取
執行緒b更新了資料庫
執行緒b更新了快取
執行緒a更新了快取
請求b查詢發現快取不存在
請求b去資料庫查詢得到舊值
請求b將舊值寫入快取
請求a將新值寫入資料庫
public void write(string key, object data)
再寫資料庫(這兩步和原來一樣)
休眠1秒,再次淘汰快取
推薦個分布式事務解決方案
分布式之資料庫和快取雙寫一致性方案解析
為什麼寫這篇文章?首先,快取由於其高併發和高效能的特性,已經在專案中被廣泛使用。在讀取快取方面,大家沒啥疑問,都是按照下圖的流程來進行業務操作。但是在更新快取方面,對於更新完資料庫,是更新快取呢,還是刪除快取。又或者是先刪除快取,再更新資料庫,其實大家存在很大的爭議。目前沒有一篇全面的部落格,對這幾...
分布式之資料庫和快取雙寫一致性方案解析
首先,快取由於其高併發和高效能的特性,已經在專案中被廣泛使用。在讀取快取方面,大家沒啥疑問,都是按照下圖的流程來進行業務操作。但是在更新快取方面,對於更新完資料庫,是更新快取呢,還是刪除快取。又或者是先刪除快取,再更新資料庫,其實大家存在很大的爭議。目前沒有一篇全面的部落格,對這幾種方案進行解析。於...
分布式之資料庫和快取雙寫一致性方案解析
首先,快取由於其高併發和高效能的特性,已經在專案中被廣泛使用。在讀取快取方面,大家沒啥疑問,都是按照下圖的流程來進行業務操作。但是在更新快取方面,對於更新完資料庫,是更新快取呢,還是刪除快取。又或者是先刪除快取,再更新資料庫,其實大家存在很大的爭議。目前沒有一篇全面的部落格,對這幾種方案進行解析。於...