Redis Sentinel Support
Spring Data Redis 对 Redis Sentinel的支持
为了解决Redis 高可用的问题,Spring Data Redis 通过使用RedisSentinelConfiguration 来支持对Redis Sentinel的使用。
请注意,当前只有Jedis 和 Lettuce支持Redis Sentinel.
下面代码展示了在Spring 工程中,通过支持Redis Sentinel来使用Redis:
/**
* jedis
*/
@Bean
public RedisConnectionFactory jedisConnectionFactory() {
RedisSentinelConfiguration sentinelConfig = new RedisSentinelConfiguration() .master("mymaster")
.sentinel("127.0.0.1", 26379) .sentinel("127.0.0.1", 26380);
return new JedisConnectionFactory(sentinelConfig);
}
/**
* lettuce
*/
@Bean
public RedisConnectionFactory lettuceConnectionFactory() {
RedisSentinelConfiguration sentinelConfig = new RedisSentinelConfiguration().master("mymaster")
.sentinel("127.0.0.1", 26379) .sentinel("127.0.0.1", 26380);
return new LettuceConnectionFactory(sentinelConfig);
}
RedisSentinelConfiguration 也能通过PropertySource来定义.
配置Properties:
- spring.redis.sentinel.master: master 节点的名称。
- spring.redis.sentinel.nodes: 使用逗号分割多个host:port 对。
有时候需要与某一个 Sentinel 进行直接交互。则可以使用RedisConnectionFactory.getSentinelConnection() 或者 RedisConnection.getSentinelCommands() 来进行访问配置的第一个活跃的 Sentinel。