91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Redis中怎么預防緩存穿透和緩存失效

發布時間:2021-08-05 16:16:22 來源:億速云 閱讀:162 作者:Leah 欄目:編程語言

Redis中怎么預防緩存穿透和緩存失效,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。

緩存穿透:
緩存穿透是指查詢一個一定不存在的數據,由于緩存是不命中時需要從數據庫查詢,查不到數據則不寫入緩存,這將導致這個不存在的數據每次請求都要到數據庫去查詢,造成緩存穿透。


解決辦法:
對所有可能查詢的參數以hash形式存儲,在控制層先進行校驗,不符合則丟棄。還有最常見的則是采用布隆過濾器,將所有可能存在的數據哈希到一個足夠大的bitmap中,一個一定不存在的數據會被這個bitmap攔截掉,從而避免了對底層存儲系統的查詢壓力。
也可以采用一個更為簡單粗暴的方法,如果一個查詢返回的數據為空(不管是數 據不存在,還是系統故障),我們仍然把這個空結果進行緩存,但它的過期時間會很短,最長不超過五分鐘。


緩存雪崩
如果緩存集中在一段時間內失效,發生大量的緩存穿透,所有的查詢都落在數據庫上,造成了緩存雪崩。


這個沒有找到完美解決辦法,但可以分析用戶行為,盡量讓失效時間點均勻分布。大多數系統設計者考慮用加鎖或者隊列的方式保證緩存的單線程(進程)寫,從而避免失效時大量的并發請求落到底層存儲系統上。


解決方法
在緩存失效后,通過加鎖或者隊列來控制讀數據庫寫緩存的線程數量。比如對某個key只允許一個線程查詢數據和寫緩存,其他線程等待。


可以通過緩存reload機制,預先去更新緩存,再即將發生大并發訪問前手動觸發加載緩存
不同的key,設置不同的過期時間,讓緩存失效的時間點盡量均勻
做二級緩存,或者雙緩存策略。A1為原始緩存,A2為拷貝緩存,A1失效時,可以訪問A2,A1緩存失效時間設置為短期,A2設置為長期即可。

看完上述內容,你們掌握Redis中怎么預防緩存穿透和緩存失效的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

阜平县| 宁城县| 泸水县| 霞浦县| 武义县| 花莲县| 乐都县| 冕宁县| 禹州市| 宁波市| 兴海县| 贵溪市| 布尔津县| 英山县| 交城县| 剑河县| 乐山市| 通城县| 平定县| 陆良县| 包头市| 东乌珠穆沁旗| 东乌| 共和县| 丹棱县| 大连市| 桐梓县| 井陉县| 保德县| 绿春县| 德庆县| 游戏| 宁强县| 红桥区| 渭南市| 灵武市| 阳江市| 安图县| 遂宁市| 逊克县| 旬阳县|