1、主从模式
package com.scm.common.utils.redis;
import com.scm.common.utils.properties.RedissonConfigProperties;
import org.redisson.Redisson;
import org.redisson.api.RedissonClient;
import org.redisson.config.Config;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
* 分布式锁配置
* Created by luxing on 13:31 2021/5/7
*/
@Configuration
@EnableConfigurationProperties(RedissonConfigProperties.class)
public class MasterClusterRedissonConfig {
@Bean
public RedissonClient redissonClient(RedissonConfigProperties properties) {
Config config = new Config();
config.useMasterSlaveServers()
//可以用"rediss://"来启用SSL连接
.setMasterAddress("redis://127.0.0.1:6379")
.addSlaveAddress("redis://127.0.0.1:6389", "redis://127.0.0.1:6332", "redis://127.0.0.1:6419")
.addSlaveAddress("redis://127.0.0.1:6399")
.setPassword(properties.getPassword())
.setSubscriptionConnectionPoolSize(16)
.setTimeout(15000)
.setReconnectionTimeout(15000)
.setIdleConnectionTimeout(50000)
.setConnectTimeout(50000);
return Redisson.create(config);
}
}
2、单机模式
/**
* 分布式锁配置
* Created by luxing on 13:31 2021/5/7
*/
@Configuration
@EnableConfigurationProperties(RedissonConfigProperties.class)
public class SingleRedissonConfig {
@Bean
public RedissonClient redissonClient(RedissonConfigProperties properties) {
Config config = new Config();
// todo 暂时redis连接数设置小
config.useSingleServer()
.setAddress(properties.getAddressUrl())
.setPassword(properties.getPassword())
.setConnectionPoolSize(32)
.setConnectionMinimumIdleSize(6)
.setSubscriptionConnectionPoolSize(16)
.setTimeout(15000)
.setReconnectionTimeout(15000)
.setIdleConnectionTimeout(50000)
.setConnectTimeout(50000);
/*
.setRetryInterval(3000)
.setTimeout(50000)
.setReconnectionTimeout(10000)
.setConnectTimeout(10000);
*/
return Redisson.create(config);
}
}
3、哨兵模式
/**
* 分布式锁配置
* Created by luxing on 13:31 2021/5/7
*/
@Configuration
@EnableConfigurationProperties(RedissonConfigProperties.class)
public class SentinelRedissonConfig {
@Bean
public RedissonClient redissonClient(RedissonConfigProperties properties) {
Config config = new Config();
config.useSentinelServers()
.setMasterName("mymaster")
//可以用"rediss://"来启用SSL连接
.addSentinelAddress("127.0.0.1:26389", "127.0.0.1:26379")
.addSentinelAddress("127.0.0.1:26319")
.addSentinelAddress("redis://127.0.0.1:46379")
.setPassword(properties.getPassword())
.setSubscriptionConnectionPoolSize(16)
.setTimeout(15000)
.setReconnectionTimeout(15000)
.setIdleConnectionTimeout(50000)
.setConnectTimeout(50000);
return Redisson.create(config);
}
}
github官方地址参考文档:配置方法 · redisson/redisson Wiki (github.com)