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);
}
}