Redis之快取雪崩,穿透,擊穿

2021-10-03 05:08:20 字數 717 閱讀 7022

快取雪崩,是指:系統剛上限時,資料還沒有載入到快取中;或者在某乙個時間點,快取中的資料大面積失效了,此時大量的查詢請求落在資料庫伺服器上,造成資料庫cpu和記憶體壓力過大,甚至宕機

解決方案:

快取穿透是指:查詢乙個在資料庫中不可能存在的資料,此時快取miss了,然後再去資料庫中進行查詢,再miss掉,然後再返回空值,整個過程為了查詢乙個不可能存在的資料進行了兩次無用的查詢。這就叫作快取穿透。一些非法使用者可能會製造大量的快取穿透來攻擊熱點介面,所以這是需要注意的。

解決方案:

快取擊穿是指:熱點key在某些特殊的場景時間內恰好失效了,導致有大量請求進入資料庫中,增加資料庫伺服器的壓力

其實快取擊穿和快取雪崩差不多,只不過快取雪崩描述的是大量key,而快取擊穿描述的是熱點key

解決方案:

快取降級是指當訪問量劇增,服務出現問題的時候,系統可以犧牲非核心服務,來保證核心服務的正常執行。系統可以根據一些關鍵資料進行自動降級,也可以配置實現人工降級。

關於快取降級,前年的雙十一,買東西是無法修改位址的,只能使用預設位址發貨,而支付等功能是沒有問題的。這就是個快取降級的表現,犧牲修改位址等非核心業務,保障支付這個核心業務!

快取預熱就是系統剛上線時,把一部分的資料提前載入到快取中,這樣就避免一開始的時候大量請求全部落在資料庫上,增加db的壓力

redis之快取穿透 雪崩 擊穿

穿透 是指查詢乙個資料庫一定不存在的資料。正常的使用快取流程大致是,資料查詢先進行快取查詢,如果key不存在或者key已經過期,再對資料庫進行查詢,並把查詢到的物件,放進快取。如果資料庫查詢物件為空,則不放進快取。而每次查詢都是空,每次又都不會進行快取。假如有惡意攻擊,就可以利用這個漏洞,對資料庫造...

Redis快取穿透,穿透擊穿,快取雪崩

乙個一定不存在快取及查詢不到的資料,由於快取是不命中時被動寫的,並且出於容錯考慮,如果從儲存層查不到資料則不寫入快取,這將導致這個不存在的資料每次請求都要到儲存層去查詢,失去了快取的意義。有很多種方法可以有效地解決快取穿透問題,最常見的則是採用布隆過濾器,將所有可能存在的資料雜湊到乙個足夠大的bit...

redis 快取穿透 擊穿 雪崩

介面層增加校驗,如使用者鑑權校驗,id做基礎校驗,id 0的直接攔截 從快取取不到的資料,在資料庫中也沒有取到,這時也可以將key value對寫為key null,快取有效時間可以設定短點,如30秒 設定太長會導致正常情況也沒法使用 這樣可以防止攻擊使用者反覆用同乙個id暴力攻擊 public o...