要激活 Lettuce 心跳机制,可以按照以下步骤配置 Spring Data Redis:
- 在配置文件(如 application.properties 或 application.yml)中添加自定义的心跳时间间隔:
spring.redis.lettuce.shutdown-timeout=100
spring.redis.lettuce.ping-command-timeout=1000
- 在 RedisConfig 类中,修改 lettuceConnectionFactory() 方法,更新 ClientOptions 的配置以应用心跳间隔:
@Configuration
public class RedisConfig {
// ... 其他配置变量
@Value("${spring.redis.lettuce.shutdown-timeout}")
private Duration shutdownTimeout;
@Value("${spring.redis.lettuce.ping-command-timeout}")
private Duration pingCommandTimeout;
@Bean
public RedisConnectionFactory lettuceConnectionFactory() {
// ... 连接池配置
ClientOptions clientOptions = ClientOptions.builder()
.socketOptions(SocketOptions.builder()
.connectTimeout(timeout)
.build())
.timeoutOptions(TimeoutOptions.builder()
.pingCommandTimeout(pingCommandTimeout)
.build())
.build();
RedisStandaloneConfiguration redisStandaloneConfiguration = new RedisStandaloneConfiguration(host, port);
redisStandaloneConfiguration.setPassword(RedisPassword.of(password));
LettucePoolingClientConfiguration lettucePoolingClientConfiguration = LettucePoolingClientConfiguration.builder()
.clientOptions(clientOptions)
.poolConfig(config)
.shutdownTimeout(shutdownTimeout)
.build();
return new LettuceConnectionFactory(redisStandaloneConfiguration, lettucePoolingClientConfiguration);
}
}