快取不一致問題
快取更新的4種策略
解決方案:延時雙刪除,偽**如下
public
void
write
(string key,object data)
假設這會有兩個請求,乙個請求a做查詢操作,乙個請求b做更新操作,那麼會有如下情形產生
(1)快取剛好失效
(2)請求a查詢資料庫,得乙個舊值
(3)請求b將新值寫入資料庫
(4)請求b刪除快取
(5)請求a將查到的舊值寫入快取
延時刪除可以解決這個問題,即讓讀執行緒把業務走完再去刪除。
刪除也可能有失敗的情況,需要啟用重試機制。
刪除失敗後,丟入訊息佇列,由另外的執行緒從佇列中獲取去刪除。
快取不一致
當程式在執行過程中,會將運算需要的資料從主存複製乙份到cpu的快取記憶體當中,那麼cpu進行計算時就可以直接從它的快取記憶體讀取資料和向其中寫入資料,當運算結束之後,再將快取記憶體中的資料重新整理到主存當中。舉個簡單的例子 i i 1。當執行緒執行這個語句時,會先從主存當中讀取i的值,然後複製乙份到...
線上快取不一致問題排查
兩個系統共用同一張表,只是維護的字段不一樣。email 郵箱 是我們新版本中新支援的功能。綜合系統沒有 email 字段,會員系統裡有 email 字段。使用者反饋說 郵箱收不郵件,去設定中看,郵箱設定會自動消失。重新設定一下就好了。一 排查資料問題 懷疑是綜合系統中,將 email 字段更新成了預...
version magic 不一致問題
碰到乙個問題,在開發過程中發現以前編譯的模組載入失敗了。wlan version magic 4.1.15 gfb2dbf6 smp preempt mod unload armv7 p2v8 should be 4.1.15 ge5de83b dirty smp preempt mod unloa...