开发者社区 问答 正文

获取Redis连接异常,求帮助。

本人在使用Redis当中遇到个疑问。
Redis服务正常,使用Redis-cli命令能够正常连接服务,并且通过client list 命令看到正常连接服务的客户端就两个
`127.0.0.1:6379> CLIENT LIST
addr=172.16.1.218:48138 fd=6 name= age=426126 idle=0 flags=S db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=32768 obl=0 oll=0 omem=0 events=r cmd=replconf
addr=127.0.0.1:30757 fd=7 name= age=6 idle=0 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=32768 obl=0 oll=0 omem=0 events=r cmd=client`
注:第一个是我做的主从,第二个为redis-cli的客户端连接。
但我在使用java程序访问redis时候发生异常,如下:
`Exception in thread "main" redis.clients.jedis.exceptions.JedisConnectionException: Could not get a resource from the pool

at redis.clients.util.Pool.getResource(Pool.java:42)
at com.lc.da.persistence.redis.RedisClusters.get(RedisClusters.java:135)
at com.lc.da.persistence.redis.RedisClusters.getJedis(RedisClusters.java:95)
at com.lc.da.persistence.redis.service.impl.LocationRedisServiceImpl.main(LocationRedisServiceImpl.java:126)

Caused by: java.util.NoSuchElementException: Unable to validate object

at org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:497)
at org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:360)
at redis.clients.util.Pool.getResource(Pool.java:40)
... 3 more`

注:这是在初始建立连接池,从池中获取一个连接时候发生的异常
当中重启redis服务后,又可以正常的建立池从池中获取连接。
请问下有哪位遇到这种问题?如何解决?感激不尽呀!

展开
收起
落地花开啦 2016-02-25 15:38:57 7381 分享 版权
1 条回答
写回答
取消 提交回答
  • 喜欢技术,喜欢努力的人

    改为false后正常
    testOnBorrow:在borrow一个jedis实例时,是否提前进行validate操作;如果为true,则得到的jedis实例均是可用的;

    2019-07-17 18:47:36
    赞同 展开评论