Redis雪崩 穿透 熱點key等優化

2021-09-05 11:32:26 字數 369 閱讀 9686

請求cache拿不到資料,就會去儲存層拿,會一直請求資料。導致後端打崩。

1.快取層快取空值,增加過期時間

2.布隆過濾器

快取雪崩就是指快取由於某些原因,整體crash掉了,導致大量請求到達後端資料庫,從而導致資料庫崩潰。

如:1.某個時間點內,系統預載入的快取週期性集中失效了

設定快取n+隨機數過期時間

2.redis掛了,客戶端直接請求到資料庫裡面

解決方法:1、保持快取層伺服器的高可用(監控、集群、哨兵。)。

3.也包含"快取穿透",請求併發過高等

限流降級等

a、b、c、d同時請求乙個資源,不存在時都要去請求儲存層

優化方法:

1、互斥鎖:

redis快取穿透 快取雪崩和熱點key

快取穿透 穿過快取,直接訪問資料庫。解決方案 對查詢不存在的儲存到快取中value設定為null.採用布隆過濾器.如果key有規則,那麼就可以直接過濾掉無規則的key 偽 if jedis查詢快取不存在 else 返回結果 else快取雪崩 某一時刻大量的key過期,使用者又大量的查詢這些key。造...

快取穿透,快取雪崩,熱點key及解決辦法

1 穿透 穿透 頻繁查詢乙個不存在的資料,由於快取不命中,每次都要查詢持久層。從而失去快取的意義。解決辦法 持久層查詢不到就快取空結果,查詢時先判斷快取中是否exists key 如果有直接返回空,沒有則查詢後返回,注意insert時需清除查詢的key,否則即便db中有值也查詢不到 當然也可以設定空...

Redis雪崩和Redis穿透

redis雪崩 查詢時redis沒有資料本來先從redis裡面查某個資料 但是redis中這個資料剛好被刪除了,還沒來得及更新 一瞬間很多請求直接進入了mysql進行查詢 而mysql承受不了太大壓力,就會出現雪崩redis穿透 跳過我們預想的資料本來先從redis裡面查某個資料 但是redis中沒...