1、 问题来源:

Lettuce版本:6.1.5

Redis版本:4.0

SpringBoot漏洞修复需要升级到新版本2.5.7,升级后与老版本的Redis配置完全一样,但是连接增强版redis时报如下错误:

SpringBoot升级后连接不上Redis问题_redis

SpringBoot升级后连接不上Redis问题_spring_02
2、原因分析:

Java 操作 Redis 的库有两个,Jedis和 Lettuce,目前 SpringBoot 2.x 中已经将 Jedis 换成了 Lettuce,Lettuce是连接Redis Server的客户端程序,Redis客户端使用RESP(Redis的序列化协议)协议与Redis的服务器端进行通信。Redis5及以下默认使用RESP2进行连接,RESP3只能连接redis6。

3、解决方案:

SpringBoot2.5.7使用的lettuce版本是6.1.5,连接Redis时默认通过RESP3协议,此时会失败,需要手动改回RESP2。

SpringBoot升级后连接不上Redis问题_redis_03