- 使用spring-boot-starter-data-redis时长时间不使用会出现连接超时问题
- 启动类添加@EnableScheduling注解
- 添加commons-pool2依赖
<dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-pool2</artifactId> </dependency>
- 开启可验证配置
@Slf4j @Component public class LettuceConnectionValidConfig implements InitializingBean { private final RedisConnectionFactory redisConnectionFactory; public LettuceConnectionValidConfig(RedisConnectionFactory redisConnectionFactory) { this.redisConnectionFactory = redisConnectionFactory; } @Override public void afterPropertiesSet() throws Exception { if(redisConnectionFactory instanceof LettuceConnectionFactory){ LettuceConnectionFactory c= (LettuceConnectionFactory)redisConnectionFactory; c.setValidateConnection(true); } } }
- 配置定时任务
@Slf4j @Component public class LettuceConnectionValidTask { private final RedisConnectionFactory redisConnectionFactory; public LettuceConnectionValidTask(RedisConnectionFactory redisConnectionFactory) { this.redisConnectionFactory = redisConnectionFactory; } @Scheduled(cron="0/2 * * * * ?") public void task() { if(redisConnectionFactory instanceof LettuceConnectionFactory){ LettuceConnectionFactory c=(LettuceConnectionFactory)redisConnectionFactory; c.validateConnection(); } } }
SpringBoot-Redis连接超时问题
于 2021-11-08 11:53:58 首次发布