Spring Boot 使用默认Redis客户端操作工具lettuce时,出现Caused by: io.lettuce.core.RedisCommandTimeoutException: Comm

Spring Boot 版本 2.1.9.RELEASE

当将图形验证码存储到Redis时,当间隔一段没有请求的时间后,再次请求图形验证码就会出现超时现象。即便修改redis.timeout也无效

解决方案

原因可能是因为lettuce当一段时间不使用后,会断开连接,当再次连接时,会出现超时问题,即便修改timeout也不行

调整Lettuce为Jedis

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId><!-- 排除lettuce依赖 --><exclusions><exclusion><groupId>io.lettuce</groupId><artifactId>lettuce-core</artifactId></exclusion></exclusions></dependency><!-- 引入Jedis客户端依赖 --><dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId><version>2.9.1</version></dependency>

添加Redis相关 配置

spring:
  redis:# Redis数据库索引(默认为0)database: 0# Redis服务器地址host: 127.0.0.1# Redis服务器连接密码(默认为空)password: 12345678# 连接超时时间(毫秒)timeout: 5000jedis:  pool:# 连接池最大连接数(使用负值表示没有限制)max-active: 20# 连接池最大阻塞等待时间(使用负值表示没有限制)max-wait: -1# 连接池中的最大空闲连接max-idle: 10# 连接池中的最小空闲连接min-idle: 0
(0)

相关推荐