redis单机和哨兵配置

redis单机和哨兵配置

重点为

类型对应实体类
哨兵config.useSentinelServers()
单机config.useSingleServer()
集群config.useClusterServers()

哨兵:

@Configuration
public class RedissonConfig {

    @Value("${spring.redis.sentinel.master}")
    private  String master;
    @Value("${spring.redis.sentinel.nodes}")
    private  String cluster;
    @Value("${spring.redis.password}")
    private String password;
    @Value("${spring.redis.timeout}")
    private Integer timeout;

    //添加redisson的bean
    @Bean
    public Redisson redisson() {
        String[] nodes = cluster.split(",");

        List<String> clusterNodes = new ArrayList<>();
        for (int i = 0; i < nodes.length; i++) {
            clusterNodes.add("redis://" + nodes[i]);
        }
        Config config = new Config();

        SentinelServersConfig serverConfig = config.useSentinelServers()
                .addSentinelAddress(clusterNodes.toArray(new String[0]))
                .setMasterName(master)
                .setReadMode(ReadMode.SLAVE)
                .setTimeout(timeout);

        //设置密码
        if (StringUtils.isNotBlank(password)) {
            serverConfig.setPassword(password);
        }
        return (Redisson) Redisson.create(config);
    }

}

单机:

@Configuration
public class RedissonConfig {

    @Autowired
    private Environment env;

    @Bean
    public RedissonClient redissonClient() {
        Config config = new Config();
        String address = "redis://" + env.getProperty("redis.host") + ":" + env.getProperty("redis.port");
        config.useSingleServer().setAddress(address)
                .setPassword(env.getProperty("redis.secret"));
        return Redisson.create(config);
    }

}

版权声明:本文为qq_32062221原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。