优化Redis连接配置,支持集群、哨兵和单机模式,同时移除不必要的配置项
This commit is contained in:
@ -15,8 +15,10 @@ import org.springframework.boot.context.properties.EnableConfigurationProperties
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.data.redis.connection.RedisConnectionFactory;
|
||||
import org.springframework.data.redis.connection.RedisClusterConfiguration;
|
||||
import org.springframework.data.redis.connection.RedisNode;
|
||||
import org.springframework.data.redis.connection.RedisSentinelConfiguration;
|
||||
import org.springframework.data.redis.connection.RedisStandaloneConfiguration;
|
||||
import org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory;
|
||||
import org.springframework.data.redis.core.RedisOperations;
|
||||
import org.springframework.data.redis.core.RedisTemplate;
|
||||
@ -69,10 +71,26 @@ public class RedisLettuceConfig {
|
||||
}
|
||||
|
||||
private LettuceConnectionFactory getLettuceConnectionFactory(Integer db) {
|
||||
LettuceConnectionFactory lettuceConnectionFactory = new LettuceConnectionFactory(this.sentinelConfig());
|
||||
lettuceConnectionFactory.setDatabase(db);
|
||||
lettuceConnectionFactory.afterPropertiesSet();
|
||||
return lettuceConnectionFactory;
|
||||
LettuceConnectionFactory factory;
|
||||
if (redisProperties.getCluster() != null && redisProperties.getCluster().getNodes() != null && !redisProperties.getCluster().getNodes().isEmpty()) {
|
||||
// 集群模式
|
||||
RedisClusterConfiguration clusterConfig = new RedisClusterConfiguration(redisProperties.getCluster().getNodes());
|
||||
clusterConfig.setPassword(redisProperties.getPassword());
|
||||
factory = new LettuceConnectionFactory(clusterConfig);
|
||||
} else if (redisProperties.getSentinel() != null && redisProperties.getSentinel().getNodes() != null && !redisProperties.getSentinel().getNodes().isEmpty()) {
|
||||
// 哨兵模式
|
||||
factory = new LettuceConnectionFactory(this.sentinelConfig());
|
||||
} else {
|
||||
// 单机模式
|
||||
RedisStandaloneConfiguration standaloneConfig = new RedisStandaloneConfiguration();
|
||||
standaloneConfig.setHostName(redisProperties.getHost());
|
||||
standaloneConfig.setPort(redisProperties.getPort());
|
||||
standaloneConfig.setPassword(redisProperties.getPassword());
|
||||
factory = new LettuceConnectionFactory(standaloneConfig);
|
||||
}
|
||||
factory.setDatabase(db);
|
||||
factory.afterPropertiesSet();
|
||||
return factory;
|
||||
}
|
||||
|
||||
private RedisSentinelConfiguration sentinelConfig() {
|
||||
|
Reference in New Issue
Block a user