大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 hot資訊 Redis優化高并發的方法

Redis優化高并發的方法

更新時間:2022-11-22 08:37:38 來源:動力節點 瀏覽1030次

redis是一種單線程機制的nosql數據庫,基于key-value,數據可持久化落盤。由于單線程所以redis本身并沒有鎖的概念,多個客戶端連接并不存在競爭關系,但是利用jedis等客戶端對redis進行并發訪問時會出現問題。發生連接超時、數據轉換錯誤、阻塞、客戶端關閉連接等問題,這些問題均是由于客戶端連接混亂造成。

同時,單線程的天性決定,高并發對同一個鍵的操作會排隊處理,如果并發量很大,可能造成后來的請求超時。

在遠程訪問redis的時候,因為網絡等原因造成高并發訪問延遲返回的問題。

解決辦法

1.在客戶端將連接進行池化,同時對客戶端讀寫Redis操作采用內部鎖synchronized。

2.服務器角度,利用setnx變向實現鎖機制。這個方法在實際環境中如何使用,本人并不清楚。

Redis常見錯誤分析

異常代碼1:

redis.clients.jedis.exceptions.JedisConnectionException: Could not get a resource from the pool

問題分析:redis.clients.util.Pool.getResource會從JedisPool池中返回一個可用的redis連接,關于JedisPool中可用連接的配置有幾個重要的參數如下:

1.MaxActive:可用連接實例的最大數目,為負數的時候沒有限制。

2.MaxIdle:空閑連接實例的最大數目,為負值時沒有限制。

3.MaxWait:等待獲取鏈接的超時時間。

也就是說當連接池中沒有active/idle的連接時,會等待maxWait時間,如果等待超時還沒有可用連接,則拋出Could not get a resource from the pool異常。所以為避免這樣的錯誤,

我們應該根據程序實際情況合理設置這三個參數的值,同時在我們獲取一個連接的程序方法中也應該合理的處理這個異常,當沒有連接可用時,等待一段時間再獲取也許是個比較好的選擇。

異常代碼2:

redis.clients.jedis.exceptions.JedisConnectionException: java.net.SocketTimeoutException: Read timed out

遇到這個異常,可能會比較疑惑,redis是對內存的操作,速度一個在毫秒級別,在對redis操作出現秒級別的操作時會讓人感覺疑惑,但是本文開頭已經說過了,在一些特殊情況下,redis出現超時并不奇怪。jedis在初始化JedisPool時應該根據實際情況通過redis.clients.jedis.JedisPoolConfig合理設置連接池參數,通過redisPool構造方法,設置socket讀取輸入InputStream的超時時間。

`pool = new JedisPool(config, host, port, 100000)`;

第四個參數是time out,單位是毫秒。可以通過合理的設置這個值來規避問題。但是這不能完全解決超時的為題。有些高并發情況下,延時返回時間甚至會達到幾十秒的極端情況。這個問題要通過代碼層面解決redis單線程本身不支持鎖,在對同一個鍵進行并發操作會產生競爭的問題。

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 狠狠色狠狠色 | 欧美日韩激情在线一区 | 欧美亚洲国产一级毛片 | 中文字幕最新中文字幕中文字幕 | 天天曰天天 | 99热久久这里只有精品首页 | 99精品视频在线观看 | 国产伦一区二区三区免费 | 日韩美女强理论片 | 黄视频网站观看 | 日日夜夜天天人人 | 日韩天天干 | 亚洲小视频在线 | 天天干视频网站 | 亚洲视频一区在线观看 | 日本不卡在线观看免费v | 欧美激情一区二区三区视频 | 老子影院午夜伦手机不卡6080 | 亚洲欧美不卡 | 天天干天天射天天爽 | 99久久久 | 国产在线欧美精品中文一区 | 成人国产一区二区三区精品 | 婷婷涩涩 | 亚洲一级毛片免费看 | 日韩免费视频一区二区 | 国产一区二区久久精品 | 香蕉免费在线视频 | 亚洲欧美日韩专区 | 久久99欧美 | 国产不卡视频在线播放 | 成人黄色一级视频 | 污宅男666在线永久免费观看 | 狠狠色噜噜狠狠狠97影音先锋 | 欧美综合天天夜夜久久 | 久久香蕉国产线看观看精品蕉 | 夜夜精品视频一区二区 | 欧美视频一区二区三区在线观看 | 久久久久久一级毛片免费无遮挡 | 日日摸夜夜添夜夜添97 | 亚洲精品伊人久久久久 |