我们已经定义了Lettuce客户端连接工厂,以便能够连接到Redis并定义自定义套接字和命令超时:
@Bean
LettuceConnectionFactory lettuceConnectionFactory() {
final SocketOptions socketOptions = SocketOptions.builder().connectTimeout(socketTimeout).build();
final ClientOptions clientOptions =
ClientOptions.builder().socketOptions(socketOptions).build();
LettuceClientConfiguration clientConfig = LettuceClientConfiguration.builder()
.commandTimeout(redisCommandTimeout)
.clientOptions(clientOptions).build();
RedisStandaloneConfiguration serverConfig = new RedisStandaloneConfiguration(redisHost,
redisPort);
final LettuceConnectionFactory lettuceConnectionFactory = new LettuceConnectionFactory(serverConfig,
clientConfig);
lettuceConnectionFactory.setValidateConnection(true);
return new LettuceConnectionFactory(serverConfig, clientConfig);
}
Lettuce文档定义默认值:
- 默认套接字超时时间为10秒
- 默认命令超时时间为60秒
如果Redis服务停止,应用程序必须在300毫秒内收到超时。最大值应该定义为多少?
Github示例项目: https://github.com/cristianprofile/spring-data-redis-lettuce