av激情亚洲男人的天堂国语,日韩欧美精品一中文字幕,无码av一区二区三区无码,国产又色又爽又刺激的a片,国产又色又爽又刺激的a片

CacheAsidePattern(緩存模式)解析

在《究竟先操作緩存,還是數(shù)據(jù)庫?》,有同學在評論提出,相關(guān)方案違背了“Cache Aside Pattern”的原則,故今天聊一聊Cache Aside Pattern。

網(wǎng)站建設公司,為您提供網(wǎng)站建設,網(wǎng)站制作,網(wǎng)頁設計及定制網(wǎng)站建設服務,專注于成都企業(yè)網(wǎng)站建設,高端網(wǎng)頁制作,對水電改造等多個行業(yè)擁有豐富的網(wǎng)站建設經(jīng)驗的網(wǎng)站建設公司。專業(yè)網(wǎng)站設計,網(wǎng)站優(yōu)化推廣哪家好,專業(yè)seo優(yōu)化優(yōu)化,H5建站,響應式網(wǎng)站。

另外,在討論技術(shù)方案時,盡量不說:

  • “你是錯的,應該怎么樣”
  • “facebook不是這樣,所以你是錯的”

畫外音:憑什么facebook就是真理?它的方案只是適合它的業(yè)務而已。

說明適用場景,說明來龍去脈,說明前因后果,比具體使用什么方案更重要。

什么是“Cache Aside Pattern”?

答:旁路緩存方案的經(jīng)驗實踐,這個實踐又分讀實踐,寫實踐。

對于讀請求

  • 先讀cache,再讀db
  • 如果,cache hit,則直接返回數(shù)據(jù)
  • 如果,cache miss,則訪問db,并將數(shù)據(jù)set回緩存

如上圖:

  • 先從cache中嘗試get數(shù)據(jù),結(jié)果miss了
  • 再從db中讀取數(shù)據(jù),從庫,讀寫分離
  • ***把數(shù)據(jù)set回cache,方便下次讀***

畫外音:這一點上,與《究竟先操作緩存,還是數(shù)據(jù)庫?》說的是一致的。

對于寫請求

  • 淘汰緩存,而不是更新緩存
  • 先操作數(shù)據(jù)庫,再淘汰緩存

如上圖:

(1)***步要操作數(shù)據(jù)庫,第二步操作緩存

畫外音:這一點上,與《究竟先操作緩存,還是數(shù)據(jù)庫?》說的不一致,也是評論反駁比較激烈的地方。

(2)緩存,采用delete淘汰,而不是set更新

畫外音:這一點上,與《緩存,究竟是淘汰,還是修改?》說的是一致的。

Cache Aside Pattern為什么建議淘汰緩存,而不是更新緩存?

答:如果更新緩存,在并發(fā)寫時,可能出現(xiàn)數(shù)據(jù)不一致。

如上圖所示,如果采用set緩存。

在1和2兩個并發(fā)寫發(fā)生時,由于無法保證時序,此時不管先操作緩存還是先操作數(shù)據(jù)庫,都可能出現(xiàn):

  • 請求1先操作數(shù)據(jù)庫,請求2后操作數(shù)據(jù)庫
  • 請求2先set了緩存,請求1后set了緩存

導致,數(shù)據(jù)庫與緩存之間的數(shù)據(jù)不一致。

所以,Cache Aside Pattern建議,delete緩存,而不是set緩存。

Cache Aside Pattern為什么建議先操作數(shù)據(jù)庫,再操作緩存?

答:如果先操作緩存,在讀寫并發(fā)時,可能出現(xiàn)數(shù)據(jù)不一致。

如上圖所示,如果先操作緩存。

在1和2并發(fā)讀寫發(fā)生時,由于無法保證時序,可能出現(xiàn):

  • 寫請求淘汰了緩存
  • 寫請求操作了數(shù)據(jù)庫(主從同步?jīng)]有完成)
  • 讀請求讀了緩存(cache miss)
  • 讀請求讀了從庫(讀了一個舊數(shù)據(jù))
  • 讀請求set回緩存(set了一個舊數(shù)據(jù))
  • 數(shù)據(jù)庫主從同步完成

導致,數(shù)據(jù)庫與緩存的數(shù)據(jù)不一致。

所以,Cache Aside Pattern建議,先操作數(shù)據(jù)庫,再操作緩存。

Cache Aside Pattern方案存在什么問題?

答:如果先操作數(shù)據(jù)庫,再淘汰緩存,在原子性被破壞時:

  • 修改數(shù)據(jù)庫成功了
  • 淘汰緩存失敗了

導致,數(shù)據(jù)庫與緩存的數(shù)據(jù)不一致。

如何解決這類問題呢?

答:詳見《究竟先操作緩存,還是數(shù)據(jù)庫?》。

【本文為專欄作者“58沈劍”原創(chuàng)稿件,轉(zhuǎn)載請聯(lián)系原作者】


新聞名稱:CacheAsidePattern(緩存模式)解析
文章源于:http://uogjgqi.cn/article/dphoocp.html
掃二維碼與項目經(jīng)理溝通

我們在微信上24小時期待你的聲音

解答本文疑問/技術(shù)咨詢/運營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流