Redis的雪崩 穿透和擊穿問題,以及解決方案

2021-10-21 03:21:54 字數 512 閱讀 9811

由於快取原因,導致大量請求到達後端資料庫,從而導致資料庫崩潰,整個系統崩潰,發生災難

解決方案

1、給快取增加失效時間,加乙個隨機值,避免集體失效

2、使用互斥鎖

3、雙快取

快取穿透指在高併發的情況下,如果某乙個key被高併發訪問,沒有命中,直接查詢資料庫獲取,從而導致了大量請求到達資料庫,而獲取key對應的資料庫本身是空的情況下、這就導致了資料庫執行了很多不必要的請求,從而導致巨大衝擊壓力

解決方案**

1、快取空物件

2、單獨過濾處理

對於所有資料key可能為空的的統一存放,並在請求進行攔截,這種比較適合命中不高,但更新不頻繁的數

擊穿實際上是雪崩的乙個特例,區別在於擊穿是特定的熱點資料,而雪崩是全部資料

解決方案**

1、二級快取,對於熱點資料進行二級快取,並對於不同級別的快取設定不同的失效時間,則請求不會擊穿快取到資料庫

Redis 穿透 擊穿 雪崩問題

快取穿透 指快取和資料庫中都沒有的資料,導致所有的請求都打到資料庫上,然後資料庫還查不到 如null 造成資料庫短時間執行緒數被打滿而導致其他服務阻塞,最終導致線上服務不可用,這種情況一般來自黑客同學。key null,快取有效時間可以設定短點 快取擊穿 指快取中沒有但資料庫中有的資料 一般是熱點資...

Redis穿透 擊穿和雪崩

概念 key對應的資料在資料來源並不存在,每次針對此key的請求從快取獲取不到,請求都會到資料來源,從而可能壓垮資料來源。比如用乙個不存在的使用者id獲取使用者資訊,不論快取還是資料庫都沒有,若黑客利用此漏洞進行攻擊可能壓垮資料庫。解決方案 乙個一定不存在快取及查詢不到的資料,由於快取是不命中時被動...

redis 雪崩,穿透,擊穿

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