RedisセンチネルモードのSpring Bootでの設定方法
Spring BootをRedis哨兵モードで設定するには、以下の手順を実行する必要があります。
- pom.xmlに以下依存関係を追加します。RedisとSentinelの依存関係を追加します。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
</dependency>
- Redisのセンチネルモード関連のプロパティを設定するには、application.properties または application.yml ファイルを使用します。
spring.redis.sentinel.master=master
spring.redis.sentinel.nodes=127.0.0.1:26379,127.0.0.1:26380,127.0.0.1:26381
- Redisの設定クラスを作成:Redis接続プールやRedisTemplateなど関連の設定を構成するための設定クラスを作成する。
@Configuration
public class RedisConfig {
@Bean
public JedisConnectionFactory jedisConnectionFactory() {
RedisSentinelConfiguration sentinelConfig = new RedisSentinelConfiguration()
.master("master")
.sentinel("127.0.0.1", 26379)
.sentinel("127.0.0.1", 26380)
.sentinel("127.0.0.1", 26381);
return new JedisConnectionFactory(sentinelConfig);
}
@Bean
public RedisTemplate<String, Object> redisTemplate() {
RedisTemplate<String, Object> template = new RedisTemplate<>();
template.setConnectionFactory(jedisConnectionFactory());
template.setKeySerializer(new StringRedisSerializer());
template.setValueSerializer(new GenericJackson2JsonRedisSerializer());
return template;
}
}
- Redisテンプレートを使用したRedis操作:Redisテンプレートをインジェクトして、メソッドを操作してRedis操作を実行する必要があります。
@Autowired
private RedisTemplate<String, Object> redisTemplate;
public void setValue(String key, Object value) {
redisTemplate.opsForValue().set(key, value);
}
public Object getValue(String key) {
return redisTemplate.opsForValue().get(key);
}
以上の手順により、Spring BootでRedisの哨兵モードを設定して使用できるようになりました。