Redis 快取雪崩和快取穿透問題

2022-04-11 22:03:49 字數 479 閱讀 5360

快取雪崩

簡介:快取同一時間大面積的失效(熱點資料同時過期失效或者宕機),所以,後面的請求都會落到資料庫上,造成資料庫短時間內承受大量請求而崩掉。

如果快取因某種原因發生了宕機,那麼原本被快取抵擋的海量查詢請求就會像瘋狗一樣湧向資料庫。此時資料庫如果抵擋不了這巨大的壓力,它就會崩潰

解決辦法:

選擇合適的記憶體淘汰策略,讓失效時間錯開,這樣能夠避免同時失效。

預熱: 上線之前,快取預先儲存一些熱點資料。

快取穿透

業務系統訪問壓根就不存在的資料,就稱為快取穿透。

如果存在海量請求查詢壓根就不存在的資料,那麼這些海量請求都會落到資料庫中,資料庫壓力劇增,可能會導致系統崩潰

簡介:一般是黑客故意去請求快取中不存在的資料,導致所有的請求都落到資料庫上,造成資料庫短時間內承受大量請求而崩掉。

解決辦法:

Redis快取穿透和快取雪崩

了解過redis的人都知道,在執行讀操作 查詢等 的時候會先從快取中讀取,快取中沒有的話再去資料庫中查詢。如下圖 概念 使用者想要查詢乙個資料,發現redis快取中沒有,也就是快取沒有命中,於是向持久層資料庫查詢。發現也沒有,於是本次查詢失敗。當使用者很多的時候,快取都沒有命中 如秒殺 於是都去請求...

redis快取雪崩和快取穿透

快取雪崩 由於原有的快取過期失效,新的快取還沒有快取進來,有乙隻請求快取請求不到,導致所有請求都跑去了資料庫,導致資料庫io 記憶體和cpu眼裡過大,甚至導致宕機,使得整個系統崩潰。解決思路 1,採用加鎖計數,或者使用合理的佇列數量來避免快取失效時對資料庫造成太大的壓力。這種辦法雖然能緩解資料庫的壓...

Redis的快取穿透 快取擊穿和快取雪崩問題

快取穿透 關注點 要查詢的資料快取中沒有,資料庫中也沒有 情景 就是在使用了快取的基礎上,去查詢乙個快取中沒有,資料庫中也沒有的空資料,也就是壓根不存在的資料 如果被人寫乙個程式去頻繁的呼叫這個查詢空資料的請求,那麼就有可能把資料庫搞崩潰 解決方案 1 快取空物件 第一次查詢快取中沒有,去查詢資料庫...