日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

當查詢redis中沒有的數據時,該查詢會下沉到數據庫層,同時數據庫層也沒有該數據,當這種情況大量出現或被惡意攻擊時,接口的訪問全部透過Redis訪問數據庫,而數據庫中也沒有這些數據,我們稱這種現象為"緩存穿透"。緩存穿透會穿透Redis的保護,提升底層數據庫的負載壓力,同時這類穿透查詢沒有數據返回也造成了網絡和計算資源的浪費。

緩存穿透解決方案

 

解決方案:

  1. 在接口訪問層對用戶做校驗,如接口傳參、登陸狀態、n秒內訪問接口的次數;
  2. 利用布隆過濾器,將數據庫層有的數據key存儲在位數組中,以判斷訪問的key在底層數據庫中是否存在;

第一種解決方案很好理解,這里介紹一下第二種方案,在前一篇文章中我們介紹了Redis的布隆過濾器,我們知道布隆過濾器可以判斷key一定不在集合內以及key極有可能在集合內。

基于布隆過濾器,我們可以先將數據庫中數據的key存儲在布隆過濾器的位數組中,每次客戶端查詢數據時先訪問Redis:

  • 如果Redis內不存在該數據,則通過布隆過濾器判斷數據是否在底層數據庫內;
  • 如果布隆過濾器告訴我們該key在底層庫內不存在,則直接返回null給客戶端即可,避免了查詢底層數據庫的動作;
  • 如果布隆過濾器告訴我們該key極有可能在底層數據庫內存在,那么將查詢下推到底層數據庫即可;
緩存穿透解決方案

 

布隆過濾器有誤判率,雖然不能完全避免數據穿透的現象,但已經可以將99.99%的穿透查詢給屏蔽在Redis層了,極大的降低了底層數據庫的壓力,減少了資源浪費。

分享到:
標簽:緩存 穿透
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定