-
redis.clients.jedis.exceptions.JedisConnectionException java.net.SocketTimeoutException: connect timed out
当我们使用jedis连接池时,经常会碰到这两个异常,大多数人的第一反应是连接数不够,解决办法就是增加连接池的最大连接数;或者是认为redis服务出现了性能问题。其实出现这两个异常时,体现的是连接池的运用上出现了问题。
testWhileIdle
testOnBorrow
timeBetweenEvictionRunsMillis
只需要在jedis连接池中增加这三个配置,不断的去检测连接的有效性(不用太担心引发性能问题,连接如果是空闲的,又何来性能问题)。防止连接池持有的连接长时候空闲时被redis服务所关系,而在下一次连接池去使用时才发现连接已经失效,引发异常。