SpringBoot 2.x 版本的 JedisConnectionFactory 支持设置 RedisSentinelConfiguration,可以通过以下方式进行配置:

  1. 引入 jedis 和 spring-boot-starter-data-redis 依赖:
<dependency>
    <groupId>redis.clients</groupId>
    <artifactId>jedis</artifactId>
    <version>{jedis.version}</version>
</dependency>

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-redis</artifactId>
    <version>{springboot.version}</version>
</dependency>
  1. 在 application.properties 或 application.yml 中配置 Redis Sentinel 的相关信息:
spring.redis.sentinel.master=myMaster
spring.redis.sentinel.nodes=127.0.0.1:26379,127.0.0.1:26380,127.0.0.1:26381
  1. 创建 JedisConnectionFactory Bean,设置 RedisSentinelConfiguration:
@Configuration
public class RedisConfig {

    @Value("${spring.redis.sentinel.master}")
    private String sentinelMaster;

    @Value("${spring.redis.sentinel.nodes}")
    private String sentinelNodes;

    @Bean
    public JedisConnectionFactory jedisConnectionFactory() {
        RedisSentinelConfiguration sentinelConfig = new RedisSentinelConfiguration()
                .master(sentinelMaster)
                .sentinel(sentinelsFromString(sentinelNodes));
        return new JedisConnectionFactory(sentinelConfig);
    }

    private Set<RedisNode> sentinelsFromString(String sentinels) {
        Set<RedisNode> nodes = new HashSet<>();
        String[] parts = sentinels.split(",");
        for (String part : parts) {
            String[] hostAndPort = part.split(":");
            nodes.add(new RedisNode(hostAndPort[0], Integer.parseInt(hostAndPort[1])));
        }
        return nodes;
    }
}

以上代码中,RedisSentinelConfiguration 用于配置 Redis Sentinel 的主/从节点信息,JedisConnectionFactory 则使用该配置创建 Jedis 客户端连接工厂。在配置文件中添加 Redis Sentinel 的相关信息,通过 @Value 注解注入到 RedisConfig 中,最终被用于创建 RedisSentinelConfiguration。

SpringBoot JedisConnectionFactory 配置 Redis Sentinel

原文地址: https://www.cveoy.top/t/topic/omcb 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录