returnResource

Jedis returnResource使用注意事项

ⅰ亾dé卋堺 提交于 2019-11-29 07:18:45
在线上环境发现了一个工作线程异常终止,看日志先是一些 SocketTimeoutException,然后突然有一个ClassCastException redis.clients.jedis.exceptions.JedisConnectionException: java.net.SocketTimeoutException: Read timed out ... java.lang.ClassCastException: [B cannot be cast to java.lang.Long at redis.clients.jedis.Connection.getIntegerReply(Connection.java:208) at redis.clients.jedis.Jedis.sismember(Jedis.java:1307) 经过在本地人工模拟网络异常的情境,最终复现了线上的这一异常。又经过深入分析(提出假设-->验证假设),最终找出了导致这一问题的原因。见如下示例代码: JedisPool pool = ...; Jedis jedis = pool.getResource(); String value = jedis.get("foo"); System.out.println("Make SocketTimeoutException"); System