redis连接池释放的问题

詹花惹草 2017-05-09 03:10:58
在使用Jeids时,虽然释放了连接池,但是发现jedis依然存在,求解答,代码如下
  /** 
* 释放jedis资源
* @param jedis
*/
public static void returnResource(final Jedis jedis) {
if (jedis != null) {
jedisPool.returnResourceObject(jedis);
}
}


public void set(String key,String value){
Jedis jedis = RedisUtils.getJedis();
System.out.println(jedis);
jedis.set(key, value);
RedisUtils.returnResource(jedis);
System.out.println(jedis);
jedis.set(key, value);
}

RedisUtils.returnResource(jedis); 执行后,后面依然能往redis里面存值,释放资源没有起到作用。。。
...全文
1467 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
露落梨花 2019-05-21
  • 打赏
  • 举报
回复
连接池jedisPool里面都是连接对象jedis,return连接对象只是把,这个连接对象归还给了连接池,这个连接对象并没有销毁。close这个连接对象才会销毁。
yql1986 2018-10-18
  • 打赏
  • 举报
回复

  /** 
      * 释放jedis资源 
      * @param jedis 
      */  
      public static void returnResource(final Jedis jedis) {  
          if (jedis != null) {
               jedisPool.returnResourceObject(jedis);  
          }  
      }  
redis连接池释放 你理解错了,return只要把负责跟redis进行通信的connection对象归还给连接池,并没有将该connection对象关闭。仍然可以从连接池中获取该对象进行操作。 要释放,你要调用close方法
qq_41386585 2018-10-18
  • 打赏
  • 举报
回复
我的return了还是可以正常使用
Hansy Chen 2017-05-09
  • 打赏
  • 举报
回复
最近我也在学这个 ,网上说3.0版本后最好使用Jesus.close()来关闭连接,而你使用的是return 我想应该是连接池回收了,并没有销毁,真的是要看看源码才行 ,楼主找到确认答案后麻烦请你告诉我,让我也学习学习!

51,397

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧