redis的雪崩,擊穿與穿透

2021-10-09 10:09:09 字數 609 閱讀 2433

redis的雪崩

例如在雙11期間,大量內容從存放在redis進行快取,但存放在redis的內容有過期時間,到過期時間後,快取內的大量資料失效,大量請求進入到資料庫,導致資料庫相應不及時,發生雪崩。

解決方案:

設定快取的失效時間,不讓快取都在同一時間失效,在使用快取同時初始化快取

對redis進行集群部署,把熱點快取分別均勻放到不同節點上

redis的擊穿

當快取中其中乙個熱點資料突然失效時,多個對此熱點資料的請求到達資料庫 ,導致資料庫響應不及時

解決方案:

使用分布式鎖,當大量請求訪問資料庫時,只有乙個請求可以搶到鎖,當乙個請求從資料庫找到資料,再將熱點資料寫入快取,其他請求在睡眠後再進入redis中查詢就可找到資料。

redis的穿透

例如當有人想對**進行惡意攻擊時,因為資料庫主鍵是從0遞增的,當有請求的引數小於0,那請求在redis快取中查詢不到,請求進入資料庫查詢,大量非法請求到達資料庫,使其崩潰。

解決方案:

若請求為非法,將非法請求設為空也放入快取中

對引數合法性校驗,不合法就return

redis 雪崩,穿透,擊穿

雪崩 同一時間key大面積失效 多出現在定時任務重新整理時 處理方案 1,把每個key的失效時間都加乙個隨機值 2,設定熱點資料永不過期,有更新操作就更新快取 3,如果時集群,將熱點資料均勻分布在不同的redis庫仲 穿透 快取和資料庫仲都沒有的資料時,使用者不斷的發起請求 處理方案 1,在介面層增...

Redis雪崩 穿透 擊穿

1 定義 1.快取穿透是指查詢乙個一定不存在的資料,由於快取不命中,接著查詢資料庫也無法查詢出結果,2.雖然也不會寫入到快取中,但是這將會導致每個查詢都會去請求資料庫,造成快取穿透 2 解決方法 布隆過濾 1.對所有可能查詢的引數以hash形式儲存,在控制層先進行校驗,不符合則丟棄,從而避免了對底層...

Redis 穿透 擊穿 雪崩

原文 如果在請求資料時,在快取層和資料庫層都沒有找到符合條件的資料,也就是說,在快取層和資料庫層都沒有命中資料,那麼,這種情況就叫作快取穿透 既然我們知道了造成快取穿透的主要原因就是快取中不存在相應的資料,直接到資料庫查詢,資料庫返回空結果,快取中不儲存空結果。那我們就自然而然的想到了解決方案 就是...