一、快取穿透:(即:快取無資料,資料庫也無資料)
如黑客惡意攻擊,使用快取和資料庫均沒有的key進行不斷請求,導致資料庫壓力過大。
解決方法:
1、對使用者進行鑑權、對請求引數進行校驗,不合理直接過濾。
2、對查詢不到的資料也放到快取,value為空,設定一定的過期時間。(不太常用,因為如果是隨機key就不起作用,且佔快取)
3、使用布隆過濾器,快速判斷key是否在資料庫中存在,不存在直接返回。(最有效)
第1種是最常用的策略,第2種不太常用,因為如果是隨機key就不起作用,且佔快取,第三種最簡單有效。實際使用中,可以1、3相結合。
快取擊穿 快取穿透 快取雪崩區別
快取穿透 產生原因 當前端傳送一條請求 這條請求快取和資料庫都沒有 到後台,會先到快取裡找,沒有再到資料庫去找,也沒有,如果有人惡意攻擊會造成資料庫蹦了,這就是穿透 解決方法 不管前面發的請求後台有沒有資料,都給乙個相應的值,比如乙個 空字串,在存到redies中,這樣下次再來查就不會再到資料庫中去...
快取穿透 快取擊穿 快取雪崩的區別
一 快取穿透 即 快取無資料,資料庫也無資料 如黑客惡意攻擊,使用快取和資料庫均沒有的key進行不斷請求,導致資料庫壓力過大。解決方法 1 對使用者進行鑑權 對請求引數進行校驗,不合理直接過濾。2 對查詢不到的資料也放到快取,value為空,設定一定的過期時間。不太常用,因為如果是隨機key就不起作...
快取穿透 快取擊穿 快取雪崩
一 快取處理流程 前台請求,後台先從快取中取資料,取到直接返回結果,取不到時從資料庫中取,資料庫取到更新快取,並返回結果,資料庫也沒取到,那直接返回空結果。二 快取穿透 描述 快取穿透是指快取和資料庫中都沒有的資料,而使用者不斷發起請求,如發起為id為 1 的資料或id為特別大不存在的資料。這時的使...