jedis--Could not return the resource to the pool解决之路

一年内,从多年的客户端开发转做前端,然后到后台,从开始基础的小问题到现在解决疑难问题,痛并快乐着,之前很多问题感觉太基础了百度一下就没记录,后面还是多做一些记录。

书归正传,前期的架构借鉴开源的,所以有些处理不够完善的,项目上线了发现总是遇到redis有问题:

第一回合:数据前几次没问题,到10次左右了发现有异常,数据不能获取到了,检查各种配置,超时什么的都设置了还是不行,服务器中redis的config配置也是ok的,觉得应该是没有关闭redis;那么ok每次用完jedis后,jedis.close掉,数据获取没有异常,解决第一阶段。

第二回合:要存储外汇等数据,同事小弟做的页面展示-慢,每次要6,7秒,那自然是有问题的,怎么回事呢? 命令行工具看看,oh !也需要6,7s,应该是数据太大了,于是拆分,分成几个key,然后获取展示基本在1s左右,ok

第三回合:项目运行一段时间,数据展示,查看redis中数据也都正常;但一看日志全是redis.clients.jedis.exceptions.JedisException: Could not return the resource to the pool;于是看一通配置检查,没用异常,查看代码,发现小伙伴几个类中,没用统一的方法,而是自己创建jedispool然后getRedis,这不科学那就会有很多个pool,于是改之,测试依然报此错误,于是继续检查,发现jedisutil中getpool是static方法,并且未做同步,于是jedisutil改为同步,获取pool也做同步处理,测试终于报其他错误-object已经被回收了,于是查看jedis获取,发现jedis定义成static的了,那每次都不会从线程池中获取新的,于是改为getJedisPool().getResource();然后测试,正常,终于解决。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值