redis緩存穿透出現原因及解決方案?第一種 簡單的解決方法針對這個情況,我們有一種簡單的解決方法就是,在數據庫沒有查詢該條數據的時候,我們讓該key緩存一個 空數據,這樣用戶再次以該key請求後台的時候,會直接返回null,避免了再次請求數據庫,我來為大家科普一下關于redis緩存穿透出現原因及解決方案?下面希望有你要的答案,我們一起來看看吧!
第一種 簡單的解決方法
針對這個情況,我們有一種簡單的解決方法就是,在數據庫沒有查詢該條數據的時候,我們讓該key緩存一個 空數據,這樣用戶再次以該key請求後台的時候,會直接返回null,避免了再次請求數據庫。
第二種 布隆過濾器
1)将數據庫所有的數據加載到布隆過濾器
2)查布隆過濾器(如果未命中直接結束)
3)查Redis緩存數據(如果未命中走3再到4 )
4)查詢數據庫
1 使用布隆過濾器處理 90%以上惡意請求.
(布隆過濾器會有一定概率誤判,但訪問一個數據如果布隆過濾器判斷不存在,說明數據一定不存在,就不會請求數據庫了,能夠有效避免大量無效請求來訪問數據庫)
2 訪問redis緩存.
3 SoftHashMap 内存再次優化處理(軟應用會在内存不夠時才GC回收利用).
4 均沒有才訪問db, redis緩存以及SoftHashMap .
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!