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

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節(jié)點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 hot資訊 Redis高并發(fā)問題的解決

Redis高并發(fā)問題的解決

更新時間:2021-08-03 16:26:32 來源:動力節(jié)點 瀏覽1073次

redis為什么會有高并發(fā)問題

redis的出身決定

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

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

在遠(yuǎn)程訪問redis的時候,因為網(wǎng)絡(luò)等原因造成高并發(fā)訪問延遲返回的問題。

解決辦法

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

2.服務(wù)器角度,利用setnx變向?qū)崿F(xiàn)鎖機制。這個方法在實際環(huán)境中如何使用,本人并不清楚。

jedis常見錯誤分析

異常代碼1:

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

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

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

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

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

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

我們應(yīng)該根據(jù)程序?qū)嶋H情況合理設(shè)置這三個參數(shù)的值,同時在我們獲取一個連接的程序方法中也應(yīng)該合理的處理這個異常,當(dāng)沒有連接可用時,等待一段時間再獲取也許是個比較好的選擇。

異常代碼2:

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

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

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

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

以上就是動力節(jié)點小編介紹的"Redis高并發(fā)問題的解決",希望對大家有幫助,想了解更多可查看Redis教程。動力節(jié)點在線學(xué)習(xí)教程,針對沒有任何Java基礎(chǔ)的讀者學(xué)習(xí),讓你從入門到精通,主要介紹了一些Java基礎(chǔ)的核心知識,讓同學(xué)們更好更方便的學(xué)習(xí)和了解Java編程,感興趣的同學(xué)可以關(guān)注一下。

提交申請后,顧問老師會電話與您溝通安排學(xué)習(xí)

免費課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 亚洲专区一路线二 | 国产成人啪午夜精品网站男同 | 久久综合视频网 | 亚洲国产女人aaa毛片在线 | 最新香蕉97超级碰碰碰碰碰久 | 99在线视频观看 | 日韩经典一区 | 亚洲精品久久九九热 | 台湾成人性视频免费播放 | 97av视频 | 久久黄色免费 | 国产高清美女一级a毛片久久w | 欧美特黄一级大黄录像 | 2021国产精品系列一区二区 | 伊人色综合久久天天网蜜月 | 亚洲国产97在线精品一区 | 99久热在线精品视频播放6 | 亚洲国产美女视频 | 午夜影院私人 | 国产成人久久精品激情91 | 国产在线视频精品视频免费看 | 日韩精品第三页 | 日本a中文字幕 | 日本老年人精品久久中文字幕 | 国产成人精品免费视 | 国产真实乱xxxav | 日本在线无 | 国产成人+亚洲欧洲 | 欧美中文综合在线视频 | 欧美国产精品一区二区免费 | 五月天婷婷在线视频国产在线 | 在线国产视频 | 亚洲在线视频观看 | 国产香蕉一区二区在线网站 | 一级黄色片毛片 | 91精品论坛 | 精品美女| 亚洲视频在线观看不卡 | 日韩一区二区三 | 久久免费视频播放 | 久久性生大片免费观看性 |