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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

redis连接池

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

【README】 本文旨在po出 redis連接池的測試用例

<dependencies><dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId><version>3.5.1</version></dependency></dependencies>

【1】 代碼?

/*** redis連接池測試用例 */ public class RedisPoolTest {public static void main(String[] args) {MyJedisPool pool = JedisPoolUtil.getJedisPoolInstance(); // 獲取redis連接池 Jedis jedis = null; try {jedis = pool.getResource(); // 獲取redis連接jedis.set("kaa", "vaa"); // 設置redis的鍵值對 } catch(Exception e) {e.printStackTrace(); } finally { if (jedis != null ) {JedisPoolUtil.release(pool, jedis); // 關閉redis連接 System.out.println("關閉redis連接"); }}} } /*** jedis redis連接池*/ public class JedisPoolUtil {private static volatile MyJedisPool pool = null; private JedisPoolUtil(){}public static MyJedisPool getJedisPoolInstance() {if (pool == null) {synchronized (JedisPoolUtil.class) {JedisPoolConfig conf = new JedisPoolConfig(); // redis連接池配置conf.setMaxIdle(2); // 最多2個連接空閑 conf.setMaxTotal(5); // 最多5個連接conf.setMaxWaitMillis(100); conf.setTestOnBorrow(true); pool = new MyJedisPool(conf, "192.168.163.201", 6382); // redis連接池 }}return pool; }/*** 釋放或斷開某個 jedis連接 * @param pool* @param jedis*/public static void release(MyJedisPool pool, Jedis jedis) {if(jedis != null) {pool.returnResource(jedis); }} } /*** 自定義redis連接池,繼承自 JedisPool* 為啥要繼承? 因為 returnBrokenResource和returnResource 這兩個方法不是public */ public class MyJedisPool extends JedisPool{public MyJedisPool(final GenericObjectPoolConfig poolConfig, final String host, final int port) {super(poolConfig, host, port, Protocol.DEFAULT_TIMEOUT);}/*** 重寫父類返回redis連接的方法*/@Overridepublic void returnBrokenResource(final Jedis resource) {if (resource != null) {returnBrokenResourceObject(resource);}} /*** 重寫父類返回redis連接的方法*/@Overridepublic void returnResource(final Jedis resource) {if (resource != null) {try {resource.resetState();returnResourceObject(resource);} catch (Exception e) {returnBrokenResource(resource);throw new JedisException("Resource is returned to the pool as broken", e);}}} }

【2】 linux 命令行連接redis,查看結果

[root@centos201 ~]# /usr/local/redis-cluster/bin/redis-cli -h 192.168.163.202 -p 6382 192.168.163.202:6382> keys * 1) "kaa" 2) "master2" 3) "master1" 192.168.163.202:6382> get kaa "vaa" 192.168.163.202:6382>

總結

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

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