麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 數據庫 > Redis > 正文

Redis緩存常用4種策略原理詳解

2020-10-28 21:27:19
字體:
來源:轉載
供稿:網友

我們都知道,提高系統性能的最簡單也最流行的方法之一其實就是使用緩存。我們引入緩存,相當于對數據進行了復制。每當系統數據更新時,保持緩存和數據源(如 MySQL 數據庫)同步至關重要,當然,這也取決于系統本身的要求,看系統是否允許一定的數據延遲。

最常見的幾種緩存策略、它們的優缺點以及使用場景,分別是:

  • Cache-Aside
  • Read-Through
  • Write-Through
  • Write-Behind

Cache-Aside 策略

Cache-Aside可能是最常用的緩存策略。在這種策略下,應用程序(Application)會與緩存(Cache)和數據源(Data Source)進行通信,應用程序會在命中數據源之前先檢查緩存。如下圖所示:

我們來看一次請求數據的過程:

  • 首先,應用程序先確定數據是否保留在緩存中;
  • 如果數據在緩存中,也即 Cache hit ,稱作“緩存命中”。數據直接從緩存中讀取并返回給客戶端應用程序;
  • 如果數據不在緩存中,也即 Cache miss,稱作“緩存未命中”。應用程序會從數據存儲的地方,如 MySQL 數據源中讀取該數據,并將數據存儲在緩存中,然后將其返回給客戶端。

Cache-Aside策略特別適合“讀多”的應用場景。使用Cache Aside策略的系統可以在一定程度上抵抗緩存故障。如果緩存服務發生故障,系統仍然可以通過直接訪問數據庫進行操作。

然而,這種策略并不能保證數據存儲和緩存之間的一致性,需要配合使用其它策略來更新或使緩存無效。另外,首次請求數據時,總是會導致緩存未命中,這種情況下需要額外的時間來將數據加載到緩存中。為了解決這個問題,開發人員可以通過手動觸發查詢操作來對數據進行“預熱”。

Read-Through 策略

在上面的Cache-Aside策略中,應用程序需要與緩存和數據源“打交道”,而在Read-Through策略下,應用程序無需管理數據源和緩存,只需要將數據源的同步委托給緩存提供程序Cache Provider即可。所有數據交互都是通過抽象緩存層完成的。

在進行大量讀取時,Read-Through可以減少數據源上的負載,也對緩存服務的故障具備一定的彈性。如果緩存服務掛了,則緩存提供程序仍然可以通過直接轉到數據源來進行操作。

然而,首次請求數據時,總是會導致緩存未命中,并需要額外的時間來將數據加載到緩存中,相信大家都知道怎么處理了吧,還是“緩存預熱”的老套路。

Read-Through適用于多次請求相同數據的場景。這與Cache-Aside策略非常相似,但是二者還是存在一些差別,這里再次強調一下:

  • 在Cache-Aside中,應用程序負責從數據源中獲取數據并更新到緩存。
  • 而在Read-Through中,此邏輯通常是由獨立的緩存提供程序支持。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 欧美成人一级片 | 久久国产免费视频 | 久久17| 九九热在线精品视频 | 免费国产一区二区视频 | 亚洲精品 在线播放 | 青热久思思 | 国产精品免费一区二区 | 久久国产亚洲视频 | 欧美大片一级毛片 | 色播亚洲 | 狠狠99 | 极品大长腿啪啪高潮露脸 | 大号bbwassbigav头交 | 久久久久久久91 | 国产日韩a | 久久精品在线免费观看 | 精品人人人人 | 九九热播视频 | 国产一区二区三区影视 | 日韩毛片网 | 欧美成人精品一区二区 | 色综合久久久久久久久久久 | 久久国产精品一区 | 久久久视频免费观看 | 黄色影院在线 | 亚洲涩涩图 | 欧美四级在线观看 | 国产一及毛片 | 国产a级久久 | 一级一级一级毛片 | 渔夫荒淫艳史 | 男男羞羞视频网站国产 | 青青青在线免费 | 狠狠色噜噜狠狠狠米奇9999 | av电影网站在线 | 国产羞羞视频在线观看 | 欧美成人午夜一区二区三区 | 羞羞电影在线观看www | 黄色成人av在线 | 在线亚洲播放 |