springboot 2.0 Redis command timed out的解决

环境:springboot 2.0.7 spring data redis

springboot从1.x升级到2.x后,spring data redis使用的redis客户端驱动从1.x的jedis换到lettuce

使用过程中,出现Redis command timed out报错,网上搜索后,很多文章都说配置项spring.redis.timeout在1.x可以设为0代表无限超时时间,而2.x必须要设置一个大于0的数,按此配置后确实正常了一段时间,但还是偶尔出现这问题

此时问题的症状是:

timed out报错的时机不确定,但一个较高几率的情况是,功能很久没用时,第一次用报错几率很高,然后第二次以后就正常

报错时一触发功能就报错,根本不像是超时,要等待一段时间才报错

最终解决方法是,把redis驱动换回jedis,具体方法请百度这里不展开

PS:在lettuce的github的issue有几个此问题的讨论,很多人跟我的情况也是一样出现timed out但都找不到规律和原因,而且讨论到结尾也没结果,只能认为是lettuce的bug.

原文地址:https://www.cnblogs.com/cannel/p/11078104.html