环境: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.
网友评论