簡單的事情,便不那么簡單!
把redis作為緩存使用已經是司空見慣,但是使用redis后經典的幾個問題如下:
緩存和數據庫間數據一致性問題
緩存穿透
- 當根據Redis key在緩存中查詢后,不存在對應Value,就應該會在后端系統如DB中去查找,該Key的并發請求量一旦變大,那么就會對DB造成很大的壓力
- 解決辦法有:
- nginx、或者業務層風險控制,將惡意穿透情況排除在外;
- 對查詢結果為空的情況依然進行緩存,但緩存時間會設置得很短,一般是幾分鐘;
緩存擊穿問題(單個key被高并發)
緩存雪崩問題(多個key被高并發)
緩存失效:
- 按時失效
- 事件失效
- 后端主動更新