本學習教程所有示例**見github:
比如下面一段**:
for
(int i =
2000
; i <
3000
; i++
)
在上面的**中,當迴圈到600次的時候,就會報出拿不到連線的錯誤,而600恰好是配置中的連線個數;並且jedis連線不會在使用結束後進行自動釋放(因為報錯後,再次請求這個方法,連乙個連線都拿不到了)。如果在**的迴圈中加入
jedis.
close()
;
則效果就不一樣了,可以迴圈結束,並且列印的jedis物件是同乙個連線位址。
jedis 3.0版本,使用jedis.close()方法關閉連線。close()原始碼如下:
@override
public
void
close()
else
}else
}
可以看到,如果是從jedispool取得的jedis例項(jedis的datasource成員不為空,即指向乙個jedispool),會進行相應的歸還給jedispool的操作,如果是單獨生成的乙個jedis例項(jedis的datasource成員為空),則會直接斷開與redis伺服器的連線。
不能不管什麼情況都一律使用returnresource()。
原因及案例見:
使用注意事項/
更健壯可靠以及優雅的處理方式如下所示:
while
(true
)catch
(jedi***ception e)
finally
}/**
* handle jedi***ception, write log and return whether the connection is broken.
*/protected
boolean
handlejedi***ception
(jedi***ception jedi***ception)
else
if(jedi***ception instanceof
jedisdataexception
)else
}else
return
true;}
/** * return jedis connection to the pool, call different return methods depends on the conectionbroken status.
*/protected
void
closeresource
(jedis jedis,
boolean conectionbroken)
else
}catch
(exception e)
}
------至所有正在努力奮鬥的程式猿們!加油!!有碼走遍天下 無碼寸步難行
1024 - 夢想,永不止步!
愛程式設計 不愛bug
愛加班 不愛黑眼圈
固執 但不偏執
瘋狂 但不瘋癲
生活裡的菜鳥
工作中的大神
身懷寶藏,一心憧憬星辰大海
追求極致,目標始於高山之巔
一群懷揣好奇,夢想改變世界的孩子
一群追日逐浪,正在改變世界的極客
你們用最美的語言,詮釋著科技的力量
你們用極速的創新,引領著時代的變遷
——github:
Redis 分布式快取
1 官網 3 菜鳥教程 4 redis的集群教程 5 史上最全redis高可用技術解決方案大全 一 redis的特點?redis 本質上是乙個 key value 型別的記憶體資料庫,很像 memcached,整個 資料庫統統載入在記憶體當中進行操作,定期通過非同步操作把資料庫資料 flush 到硬...
分布式快取Redis之bitmap setbit
本學習教程所有示例 見github 1 setbit redis 127.0.0.1 6379 setbit key name offset value 該命令用於對 key 所儲存的字串值,設定或清除指定偏移量上的位 bit 時間複雜度o 1 在redis中,儲存的字串都是以二進位制的形式存在的。...
分布式快取Redis之效能測試
本學習教程所有示例 見github redis 效能測試是通過同時執行多個命令實現的。redis 效能測試的基本命令如下 redis benchmark option option value 以下例項同時執行 10000 個請求來檢測效能 redis benchmark n 100000 ping...