Redis的快取穿透、快取雪崩、快取擊穿的區別

Ocean.k發表於2020-10-16

1)快取穿透是指查詢一個一定不存在的資料。由於快取命不中時會去查詢資料庫,查不到資料則不寫入快取,這將導致這個不存在的資料每次請求都要到資料庫去查詢,造成快取穿透。

解決方案:

  • 是將空物件也快取起來,並給它設定一個很短的過期時間,最長不超過5分鐘

② 採用布隆過濾器,將所有可能存在的資料雜湊到一個足夠大的bitmap中,一個一定不存在的資料會被這個bitmap攔截掉,從而避免了對底層儲存系統的查詢壓力

2)如果快取集中在一段時間內失效,發生大量的快取穿透,所有的查詢都落在資料庫上,就會造成快取雪崩。

解決方案:

儘量讓失效的時間點不分佈在同一個時間點

3)快取擊穿,是指一個key非常熱點,在不停的扛著大併發,當這個key在失效的瞬間,持續的大併發就穿破快取,直接請求資料庫,就像在一個屏障上鑿開了一個洞。

解決方案:

可以設定key永不過期

相關文章