使用Jedis操作redis的连接池问题

之前一直用的jedis 2.9版本,在使用Jedispool连接池时,每次操作后都要释放连接。

之前一直这么写的“

jedisPool.returnResourceObject(resource);

一直使用的是redis.clients.jedis.JedisPool下面的 returnResourceObject 这个方法,虽然过时,但也还能用。

今天换成了jedis 3.0.1,这个方法直接就没有了。

找了半天,回收资源的方法原来跑到 redis.clients.jedis 里面的close方法了。

之后看了下这个方法,应该也是大同小异。

@Override
  public void close() {
    if (dataSource != null) {
      JedisPoolAbstract pool = this.dataSource;
      this.dataSource = null;
      if (client.isBroken()) {
        pool.returnBrokenResource(this);
      } else {
        pool.returnResource(this);
      }
    } else {
      super.close();
    }
  }

总结:还是源码看得少,有时候应该好好看看Jedis。。。。

经验分享 程序员 微信小程序 职场和发展