快取穿透:指在高并發場景下,如果某一個 key 被高并發訪問,沒有被命中,出于對容錯性考慮,會嘗試去從后端資料庫中獲取,從而導致了大量請求到達資料庫,而當該 key 對應的資料庫本身就是空的情況下,這就導致資料庫中并發的去執行了很多不必要的查詢操作,從而導致巨大沖擊和壓力,
快取穿透解決方案:
1. 快取空物件
對查詢結果為空的物件也進行快取,如果是集合,可以快取一個空的集合(非 null ),如果是快取單個物件,可以通過欄位標識來區分,這樣避免請求穿透到后端資料庫,
同時,也需要保證快取資料的時效性,這種方式實作起來成本較低,比較適合命中不高,但可能被頻繁更新的資料,
2. 單獨過濾處理
對所有可能對應資料為空的 key 進行統一的存放,并在請求前做攔截,這樣避免請求穿透到后端資料庫,這種方式實作起來相對復雜,比較適合命中不高,但是更新不頻繁的資料,

轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/261360.html
標籤:其他
上一篇:Hive架構(資料庫和表)
