快取穿透 快取穿擊 快取雪崩 的理解

2021-10-04 21:03:14 字數 668 閱讀 4520

快取穿透

指快取和資料庫中都沒有的資料,而使用者不斷發起請求,如發起為id為「-1」的資料或id為特別大不存在的資料。這時的使用者很可能是攻擊者,攻擊會導致資料庫壓力過大。

解決方案:

介面層增加校驗,如使用者鑑權校驗,id做基礎校驗,id<=0的直接攔截;

從快取取不到的資料,在資料庫中也沒有取到,這時也可以將key-value對寫為key-null,快取有效時間可以設定短點,如30秒(設定太長會導致正常情況也沒法使用)。這樣可以防止攻擊使用者反覆用同乙個id暴力攻擊。

快取擊穿描述:

快取擊穿是指快取中沒有但資料庫中有的資料(一般是快取時間到期),這時由於併發使用者特別多,同時讀快取沒讀到資料,又同時去資料庫去取資料,引起資料庫壓力瞬間增大,造成過大壓力

解決方案:

1.設定熱點資料永遠不過期。

2.加互斥鎖

快取雪崩描述:

快取雪崩是指**快取中資料大批量到過期時間,而查詢資料量巨大,引起資料庫壓力過大甚至down機。**和快取擊穿不同的是, 快取擊穿指併發查同一條資料,快取雪崩是不同資料都過期了,很多資料都查不到從而查資料庫。

解決方案:

快取穿透 快取雪崩

一 快取穿透 描述 快取穿透是指快取和資料庫中都沒有的資料,而使用者不斷發起請求,如發起為id為 1 的資料或id為特別大不存在的資料。這時的使用者很可能是攻擊者,攻擊會導致資料庫壓力過大。解決方案 1 介面層增加校驗,如使用者鑑權校驗,id做基礎校驗,id 0的直接攔截 2 從快取取不到的資料,在...

快取穿透 快取擊穿 快取雪崩

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

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

所謂的快取穿透,簡單來講就是查詢某些不存在的key時,快取和資料庫查詢結果都為空,而空的結果又不被快取起來,而導致每次查詢都去請求資料庫層的情況。在流量大時,可能db就掛掉了,要是有人利用不存在的key頻繁攻擊我們的應用,這就是漏洞。過程 快取不命中,進而導致每次查詢都去查詢資料庫,快取也就失去了作...