1.緩存雪崩
大量key同時失效,大量請求發送到db上,導緻db當機。
1.解決辦法
設定key過期時間時,使用随機數
setRedis(Key,value,time + Math.random() * 10000);
2.緩存穿透
大量請求請求一個緩存中沒有的key,這些請求直接怼到db上,造成當機。如發送為負數的入參時。(一般為黑客侵入)
- 加入入參的驗證,防止非法入參。
- nginx加入攔截,防止同一個ip大量的請求。
- 使用布隆過濾器判斷資料庫是否存在,不存在直接傳回。
3.緩存擊穿
熱點key突然失效,大量的請求怼到db,db當機。
- 設定熱點緩存不過期
- 加入互斥鎖