jedisPool中的jedis实例被还回后是否会断开和redis服务端的socket连接

技术交流会上讨论到,使用jedisPool时,有人认为在返回jedis实例到连接池时,会断开与redis服务端的socket连接。然而,根据jedisPool的TestOnBorrow和TestOnReturn配置,这并不符合连接池的设计理念,其目的是重用连接而非每次操作后断开。通过源码分析,发现在return时确实不会关闭连接,而是进行实例检查。
摘要由CSDN通过智能技术生成

昨天开技术交流会,谈到NIO的socket时,我们联想到了redis连接也用的socket,这点我赞同,可是突然某前辈说在完成一个操作后将jedis实例return给jedispool时,会将该实例和redis的连接断开。。。。。。听到这我就郁闷了。

我觉得啊,无论是数据库连接池,还是redis连接池,只要是连接池,它的思想就是事先准备一些连接,供有客户端进行操作的时候可以直接读写,而不需要再次建立连接。因为建立连接是个昂贵的操作,会耗费相当到一部分时间,甚至一次数据读写,大部分的时间都花在了建立连接上前辈的这个结论明显违背了连接池的设计思想,口说无凭,用源码说话。扒了半天源码,终于找到了姑且能作为证据的证据吧:

jedispool的配置项中有TestOnBorrow、TestOnReturn这两个,意思是在borrow和return jedis实例的时候是否要对实例进行检查,以TestOnReturn的为例,方法在redis.clients.jedis.JedisPool的内部类JedisFactory中,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值