關於Redis的緩存雪崩、緩存擊穿、緩存穿透

對於發生的故障是緩存雪崩、擊穿、穿透,是由發生時的類型決定的,對於不同的類型雖說有不同的解決方案,但是設計一套靈活且周密的架構纔是核心。

 

緩存穿透

在緩存中未命中,在數據庫中也未命中;由於大量請求在緩存中未命中導致數據庫層壓力巨大出現故障

應對策略

  1. 緩存null對象
  2. 增加白名單
  3. 攔截非法請求

緩存擊穿

大量熱點頻繁Key過期,導致數據庫壓力在某一時刻增大出現故障

應對策略

  1. 熱點key不設置過期時間,由後臺動態處理
  2. 增加互斥鎖機制,只能有一個請求進行處理一個Key的的緩存

 

緩存雪崩

大量key都過期,或者緩存宕機,導致請求都走到數據庫

應對策略

  1. 均勻設置過期時間,避免一起過期造成的雪崩
  2. 增加互斥鎖機制
  3. 雙Key策略,主Key失效了,使用從Key,當數據更新時,主Key和從Key都進行更新
  對於宕機:
  1. 服務熔斷
  2. 請求限流
  3. 集羣redis,哨兵,集羣等

 

不難看出上面其實就是發生時刻的類型決定的結果,其實我們在設計系統時刻,根據不同的業務,規模,環境等情況,使用不同的架構才能保證系統的安全,高可用。

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