JedisPool異常Jedis鏈結處理

2021-08-01 08:33:57 字數 488 閱讀 2555

問題現象(jedis-2.1.0.jar)

問題現象(jedis-2.1.0.jar)

基於jedispool管理jedis物件,通過get方法獲取值,出現key對應的value值錯誤,例如:

k va a

b bjedis.get(「a」)==』b』;

通過獲取key為a的值,但獲取了值b來。

同一套**的專案,分別部署在兩個不同的應用集群,其中乙個集群出現這種問題,而另乙個集群卻沒有出現。

問題分析

通過表象可以看出,應該是鏈結池的jedis物件鏈結出現錯亂而導致的。而兩個集群中的其中乙個集群出現,這兩個集群的唯一區別就是網路環境不一樣,所以連線redis伺服器的網路是有差別的。

問題思考

根據以上資訊,可以大致判斷出應該跟網速和jedispool鏈結池的超時時間(500毫秒)設定有關。那接下來的問題是,如果網路差的集群,出現redis連線超時,那麼jedis為什麼會錯誤呢?是否在連線池的配置不當知道呢?

JedisPool配置總結

jedispool的配置引數大部分是由jedispoolconfig的對應項來賦值的。maxactive 控制乙個pool可分配多少個jedis例項,通過pool.getresource 來獲取 如果賦值為 1,則表示不限制 如果pool已經分配了maxactive個jedis例項,則此時pool的...

Emacs Python 自動補全之 jedi

jedi 的安裝配置並不是很友好。github 安裝jedi m x package install jedi jedi core這裡需要注意,jedi core是須要安裝的。因為後面會用到。配置python mode自動啟用jedi 在相應的配置檔案中加入以下內容 setq jedi server...

JedisPool鏈結未釋放

最近線上出現乙個問題,乙個介面一段時間後無響應,檢視nginx日誌499 502異常。通過查詢 和測試發現原來是jedis建立client連線redis之後資源未釋放。測試環境下,測試問題步驟如下 1 redis客戶端info clients檢視當前的連線數 2 呼叫異常介面。介面呼叫時redis的...