我們在使用redis緩存時候常用方案是先查redis,如果redis有返回,沒有則查數據庫,數據庫查出來後放入redis。
1.緩存雪崩
緩存雪崩是指緩存中數據在同一時間大量失效,導致查詢全部落入數據庫。
解決方案:
數據的過期時間隨機設置,防止同時過期
設置熱點數據永遠不過期。
2.緩存擊穿
緩存擊穿是指某一條熱點數據失效,導致此時大批量查詢這條數據的請求落到數據庫。
解決方案:
加鎖,只有第一個請求查詢數據庫,然後放入redis,後續的都查詢數據庫。
設置熱點數據永遠不過期。
3.緩存穿透
緩存穿透在惡意攻擊中比較常見,客戶端一直查詢不存在的數據。
解決方案:布隆過濾器。