日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

024_Jedis连接池

發布時間:2025/4/17 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 024_Jedis连接池 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1. Jedis不是線程安全的, 故不應該在多線程環境中共用一個Jedis實例。但是, 也應該避免直接創建多個Jedis實例, 因為這種做法會導致創建過多的socket連接, 性能不高。

2. 要保證線程安全且獲得較好的性能, 可以使用JedisPool。JedisPool是一個連接池, 既可以保證線程安全, 又可以保證了較高的效率。

3. 可以聲明一個全局的JedisPool變量來保存JedisPool對象的引用, 然后在其他地方使用。要知道, JedisPool是一個線程安全的連接池。

JedisPool jedisPool = new JedisPool("127.0.0.1");

4. 通過jedisPool.getResource()獲得一個Jedis實例

Jedis jedis = jedisPool.getResource();

5. 用Jedis類的close方法, 將這個Jedis實例歸還給JedisPool

jedis.close();

6. Jedis類的close方法

6.1.?Jedis類的close方法代碼

public void close() {if (dataSource != null) {if (client.isBroken())this.dataSource.returnBrokenResource(this);elsethis.dataSource.returnResource(this);} else {client.close();} }

6.2.?可以看到, 如果是從JedisPool取得的Jedis實例(Jedis的dataSource成員不為空, 即指向一個JedisPool), 會進行相應的歸還給JedisPool的操作, 如果是單獨生成的一個Jedis實例(Jedis的dataSource成員為空), 則會直接斷開與Redis服務器的連接。

7. 例子

7.1. 新建一個名為JedisPool的Java項目, 拷入相關jar包, 并添加到build path

7.2. 代碼

package com.redis.pool;import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool;/*** Jedis連接池*/ public class UseJedisPool {public static void main(String[] args) {JedisPool jedisPool = new JedisPool("192.168.25.138");// 獲取一個客戶端實例Jedis jedis = jedisPool.getResource();jedis.auth("lyw123456");jedis.set("name", "zhangsan");System.out.println(jedis.get("name"));// 把客戶端歸還給連接池jedis.close();// 釋放連接池jedisPool.close();jedisPool.destroy();} }

7.3. 運行結果

總結

以上是生活随笔為你收集整理的024_Jedis连接池的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。