快取雪崩,穿透和擊穿

2021-09-29 15:43:35 字數 391 閱讀 7453

一 快取雪崩:大量key同時失效,大量請求傳送到db上,導致db宕機。

解決辦法:設定key過期時間時,使用隨機數

setredis(key,value,time + math.random() * 10000);
二 快取穿透:大量請求請求乙個快取中沒有的key,這些請求直接懟到db上,造成宕機。如傳送為負數的入參時。(一般為黑客侵入)

解決辦法:1.加入入參的驗證,防止非法入參。

2.nginx加入攔截,防止同乙個ip大量的請求。

3.使用布隆過濾器判斷資料庫是否存在,不存在直接返回。

三 快取擊穿:熱點key突然失效,大量的請求懟到db,db宕機。

解決辦法:1:設定熱點快取不過期

2:加入互斥鎖

快取擊穿 雪崩和穿透

訪問乙個不存在的key,快取不起作用,請求會穿透到db 資料庫 流量大時db會掛掉 解決方法 之所以發生穿透,是因為快取中沒有儲存這些資料的key,從而每次都查詢資料庫,我們可以為這些key在快取中設定對應的值為null,後面查詢這個key的時候就不用查詢資料庫了,訪問key未在db查詢到值,也將空...

快取穿透,擊穿,雪崩

一 快取處理流程 前台請求,後台先從快取中取資料,取到直接返回結果,取不到時從資料庫中取,資料庫取到更新快取,並返回結果,資料庫也沒取到,那直接返回空結果。二 快取穿透 描述 快取穿透是指快取和資料庫中都沒有的資料,而使用者不斷發起請求,如發起為id為 1 的資料或id為特別大不存在的資料。這時的使...

快取穿透,擊穿,雪崩

快取穿透 在高併發下,查詢乙個不存在的值時,快取不會被命中,導致大量請求直接落到資料庫上,如活動系統裡面查詢乙個不存在的活動。快取擊穿 在高併發下,對乙個特定的值進行查詢,但是這個時候快取正好過期了,快取沒有命中,導致大量請求直接落到資料庫上,如活動系統裡面查詢活動資訊,但是在活動進行過程中活動快取...