Redis快取穿透

算盘發表於2024-07-03

現象:
1、應用伺服器壓力變大
2、redis命中率降低
3、一直查詢資料庫

產生原因;
1、redis查詢不到資料
2、出現很多非正常URL訪問

解決方案:
1、對空值做快取
---如果一個查詢返回的資料為空(不管是資料是否不存在),我們仍然把這個空結果(null)進行快取,設定空結果的過期時間會很短,最長不超過五分鐘

2、設定可訪問名單(白名單)
---使用bitmaps型別定義一個可以訪問的名單,名單id作為bitmaps的偏移量,每次訪問和bitmaps裡面的id進行比較,如果訪問id不在bitmaps裡面,進行攔截,不允許訪問

3、採用布隆過濾器
---它實際上是一個很長的二進位制向量(點陣圖)和一系列隨機對映函式(雜湊函式)

4、進行實時監控
---當發現redis的命中率開始極速降低,需要排查訪問物件和訪問的資料,和運維人員配合,可以設定黑名單限制服務

相關文章