redis在java中的使用和出现的异常情况

最近项目中使用了redis数据库,由于不熟悉中间出现了很多情况,在解决过程中往往会因为解决一个地方造成好几处的错误,为了加深印象,一一记录一下。

项目一开始使用的redis是别的同事安装好的,并不知道版本号,而且找不到配置文件,因为项目赶时间我们就仓促的选择了一个jedis.jar(2.1)版本和commons-pool.jar(1.6),这两个jar包在网上也很好搜到,后来根据实际情况将redis升级到了3.0稳定版,jedis使用了2.7的jar包,commons-pool使用了2.4的jar包。

这里还是给大家一个从官网下载的连接

redis:  http://redis.io/clients (从该链接里可以选择对应的redis客户端查看)

jedis:  https://github.com/xetorthio/jedis/tree/master  

commons-pool :http://commons.apache.org/proper/commons-pool/download_pool.cgi

项目问题的起因是大家最熟悉的redis数据库连接不够,报redis.clients.jedis.exceptions.JedisConnectionException: Could not get a resource from the pool异常,

针对这一问题,我们项目中调大连接池的管理的最大数量,就是调用JedisPoolConfig类中的setMaxActive()方法(该方法在2.0以后commons-pool的jar包下已经不存在了,替代的是set.setMaxTotal()方法,具体后续再说),和修改最大等待时间,使用config.setMaxWait()方法(该方法在commons-pool 2.0以后的jar也不存在了,使用config.setMaxWaitMillis()方法替代)。所有的这些都配置好了以后,项目的中的连接数确实增大了,但是使用连接池释放的连接在server端一直不能关闭或关闭的不及时(在linux下可以使用命令查看数据量:netstat -anp|grep redis|wc),所以这样一样没有解决问题的根本,还得继续寻找原因。

客户端的程序经过好几次的修改和跟踪,问题依然存在,于是判断是在这个机器上的其他项目的程序在连接redis没有释放资源,于是我们项目redis服务的问题,根据网上的资料和官网的介绍需要修改redis的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值