高效能快取實踐 快取穿透

2021-10-09 22:00:41 字數 565 閱讀 1800

問題快取穿透:大量的客戶端請求,引數都是無效的,導致直接穿過快取,直接查詢資料庫。需要將這些無效的請求引數,過濾,不直接查詢資料庫,減少資料庫的壓力。提供正常請求的響應率。

解決方法:

對於非法引數請求,通過前端後端的引數校驗,直接阻斷請求。

使用spring boot cache 預設是快取null結果的。

思路:將可能的查詢引數,也就是快取的key,都儲存在布隆過濾器中,在請求達到後,先判斷該請求引數,是否在布隆過濾器中,不存在,直接響應。不再查詢資料庫。

參考:布隆過濾器的方式解決快取穿透問題

基於布隆過濾器的演算法,能在海量資料中判斷某個資料是否存在,判斷效率非常高,占用的儲存空間很小。

參考:大白話布隆過濾器

一看就懂系列之 詳解redis的bitmap在億級專案中的應用

快取 redis 快取穿透

哪一些因素 考慮使用redis,畢竟 redis 也要增加成本 1 熱點資料 2 讀的成本非常大 3 讀多寫少 4 對資料一致性要求 沒有那麼嚴格 可以出現資料與資料庫不一致 1 秒殺場景 3 物流查詢軌跡 熱點資料 啟用的資料是被快取到redis 當中 快取key 乙個時間點過期的時候,如果快取資...

快取穿透 快取雪崩

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

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

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