Redis-高併發緩存設計

目前後端用的緩存,主流的有Redis,對於高併發的系統,實際上會遇到以下的幾個問題:
(前提是一般的業務代碼中,緩存空則去請求數據庫)
1、緩存雪崩現象:由於訪問了沒有緩存,或者已經過期的KEY,導致大量請求到達數據庫
2、緩存擊穿:單個KEY的高併發訪問,高負載導致命中丟失,大量併發查詢到達數據庫

so,如何設計
  • 針對第一個問題,圍繞着解決緩存爲空的空窗期,有兩種方案:
    一、讀寫分離。業務代碼只負責讀,定時腳本負責寫


二、設置兩個過期時間,一個是業務邏輯上的過期時間,另一個是相對滯後的實際過期時間,在兩個時間點之間,對緩存進行更新


  • 針對第二個問題,把單KEY節點的負載訪問,隨機分散到幾個緩存副本節點中。更新的時候,緩存副本全部同步更新。


以上。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章