java 代码 创建一个redis 配置类
@Configuration
@EnableCaching
public class ConfigRedis {
private Logger logger = LoggerFactory.getLogger(ConfigRedis.class);
@Value("${spring.redis.address:}")
private String springRedisAddress;
@Value("${spring.redis.pass:}")
private String springRedisPass;
@Value("${spring.redis.master:}")
private String master;
@Bean
public LettuceConnectionFactory redisConnectionFactory() {
// 配置Redis哨兵
RedisSentinelConfiguration sentinelConfig = new RedisSentinelConfiguration()
.master("mymaster") // 主节点名称 哨兵模式一定要把这个加上 要不报错
// 就是配置文件里面的名
// 监控主节点 sentinel monitor mymaster 192.168.0.74 6379 1
.sentinel("192.168.0.74", 26379) // 哨兵节点1 端口是 哨兵的端口
.sentinel("192.168.0.75", 26379) // 哨兵节点2
.sentinel("192.168.0.76", 26379); // 哨兵节点3
sentinelConfig.setPassword("123456");// 密码
// 创建Lettuce连接工厂
return new LettuceConnectionFactory(sentinelConfig);
}
// 正式用 上面是为了调试用
@Bean
public LettuceConnectionFactory redisConnectionFactory() {
RedisSentinelConfiguration sentinelConfiguration = new RedisSentinelConfiguration()
.master(master);// 主节点名称
Set<String> nodes = new HashSet<>(Arrays.asList(springRedisAddress.split(",")));
nodes.forEach(node -> {
String[] parts = node.split(":");
sentinelConfiguration.sentinel(parts[0], Integer.parseInt(parts[1]));
});
sentinelConfiguration.setPassword(AESUtil.decrypt(springRedisPass));
return new LettuceConnectionFactory(sentinelConfiguration);
}
}
maven
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
</dependency>
我自己的配置方案