jedis连接redis超时的问题

最近项目要用到redis,我们用的是SpringBoot1.5.6,因此通过jedis进行连接,然后程序跑起来,发现经常会抛出异常,提示连接断开。

以前我们用PHP的时候,从来没有出现过这个问题,网上查了下,大多都是说和超时时间设置有关系,但是java代码里面,即使把超时时间设置很长,还是不能解决这个问题。

后来发现,是因为有人把服务器上的redis的超时时间(redis.conf中的timeout)设置为了5秒。

redis默认安装后,这个timetout的值是0;询问了运维,我们线上也是0,而且因为我们以前的PHP代码,并没有维持长连接,都是用户请求过来就创建一个连接,然后用户请求结束就销毁连接,整个过程很短,没有达到5秒,因此没出现这个问题。

解决方案:

1.程序中增加异常处理机制,当发现从连接池取到的redis连接不可用时,重新创建一个连接,保证程序不受服务器上redis超时时间的影响

2.将服务器上的redis超时时间设置为0,即永不超时