亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

Redis生產場景問題以及解決方案

發布時間:2021-07-05 18:31:13 來源:億速云 閱讀:185 作者:chen 欄目:編程語言

本篇內容介紹了“Redis生產場景問題以及解決方案”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

1、緩存穿透
緩存穿透是指查詢一個根本不存在的數據, 緩存層和存儲層都不會命中, 通常出于容錯的考慮,
如果從存儲 層查不到數據則不寫入緩存層。 緩存穿透將導致不存在的數據每次請求都要到存儲層去查詢, 失去了緩存保護后端存儲的意義。
造成緩存穿透的基本原因有兩個:
第一, 自身業務代碼或者數據出現問題。
第二, 一些惡意攻擊、 爬蟲等造成大量空命中。
解決方案
1-1、緩存空對象
1-2、布隆過濾器

2、緩存失效

比如在管理后臺批量設置了大量的緩存數據,那么在某個時間大量的key在相同的時間同時失效,這樣大量來自用戶端的請求就會直接請求到數據庫層,造成數據庫端瞬間壓力增大,這種情況即為緩存失效。
解決方案:在批量設置key時,過期時間通過隨機時間的方式來設置,可以避免這種問題的發生

3、讀寫不一致解決方案
(1)并發量小,或者是用戶想關的數據基本不會有并發,設置過期時間即可
(2)利用分布式鎖解決讀寫不一致的問題
    Redisson readWriteLock、讀讀不互斥,讀寫互斥
(3)canal中間件方案
    利用canal中間件,可以解決讀寫不一致的問題,程序只需關注緩存或數據庫自身即可,同步的事情交給中間件canal來完成

5、通過連接池方式訪問redis,提高訪問效率
示例代碼-->
https://gitee.com/ggkt/java-base/blob/master/src/com/ggkt/redis/RedisPool.java
6、連接池預熱
示例代碼->
https://gitee.com/ggkt/java-base/blob/master/src/com/ggkt/redis/RedisPoolPreLoad.java
如果系統有大量并發,為了提交redis效率,客戶端可以提前將redis連接預熱到連接池,規避瞬間redis訪問的壓力
7、過期key清除原理
(1)、被動刪除,key過期了并不會自動清除,過期時間后有訪問了才會清除
(2)、主動刪除,redis會定期淘汰過期key;
(3)、超過maxmemory也會觸發清理策略
8、主動刪除策略
主動清理策略在Redis 4.0 之前一共實現了 6 種內存淘汰策略,在 4.0 之后,又增加了 2 種策 略,總共8種:
8-1、設置了過期時間的key的刪除
(1)volatile-ttl:按照過期時間先后刪除
(2)volatile-random:按照過期時間隨機刪除
(3)volatile-lru:按照過期時間lru隨機刪除
(4)volatile-lfu:按照過期時間lfu隨機刪除
8-2、針對所有的key的刪除
(5) allkeys-random:從所有鍵值對中隨機選擇并刪除數據。
(6)allkeys-lru:使用 LRU 算法在所有數據中進行篩選刪除。
(7)allkeys-lfu:使用 LFU 算法在所有數據中進行篩選刪除。
8-3、不處理
(8) noeviction:不會剔除任何數據,拒絕所有寫入操作并返回客戶端錯誤信息"(error)
    OOM command not allowed when used memory",此時Redis只響應讀操作。

9、最大內存設置
生產環境一定要設置最大內存,否則,如果如果內存數據超過了物理內存
則會使用swap分區進行內存的存儲,這樣增加了磁盤io讀寫、數據交換,大大降低服務及服務器性能。
而設置了最大內存就會內存達到一定的值就會觸發redis的內存清理機制,可以保證redis的效率

10、模擬程序打爆你的redis

“Redis生產場景問題以及解決方案”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

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

AI

新干县| 石泉县| 孟津县| 望都县| 朝阳市| 桐乡市| 鄯善县| 吉木乃县| 景谷| 文山县| 岳西县| 门头沟区| 舞钢市| 富源县| 延寿县| 郸城县| 玛多县| 乳源| 太原市| 通州市| 集安市| 杭锦后旗| 南平市| 方正县| 车险| 洱源县| 洪雅县| 昌邑市| 陆丰市| 克什克腾旗| 犍为县| 和田县| 广水市| 兴安盟| 盐边县| 崇义县| 靖江市| 鹤壁市| 泸西县| 巴林左旗| 成武县|