Springboot redisクラスタを構成する方法
RedisクラスタをSpring Bootに設定するには、以下の方法を使用できます。
- pom.xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
- application.properties
- application.yml
spring.redis.cluster.nodes=node1:6379,node2:6379,node3:6379
いずれ
spring:
redis:
cluster:
nodes: node1:6379,node2:6379,node3:6379
- RedisTemplate Bean の生成:Spring Boot の設定クラスに RedisTemplate Bean を作成する(例:
@Configuration
public class RedisConfig {
@Value("${spring.redis.cluster.nodes}")
private String clusterNodes;
@Bean
public RedisConnectionFactory redisConnectionFactory() {
RedisClusterConfiguration config = new RedisClusterConfiguration(Arrays.asList(clusterNodes.split(",")));
return new JedisConnectionFactory(config);
}
@Bean
public RedisTemplate<String, Object> redisTemplate() {
RedisTemplate<String, Object> template = new RedisTemplate<>();
template.setConnectionFactory(redisConnectionFactory());
template.setKeySerializer(new StringRedisSerializer());
template.setValueSerializer(new GenericJackson2JsonRedisSerializer());
return template;
}
}
上記のコードで、RedisConfig クラスは RedisClusterConfiguration を使用して RedisConnectionFactory を作成し、RedisTemplate のシリアライザを StringRedisSerializer と GenericJackson2JsonRedisSerializer に設定しています。
- Redisのテンプレートクラス
@Autowired
private RedisTemplate<String, Object> redisTemplate;
public void save(String key, Object value) {
redisTemplate.opsForValue().set(key, value);
}
public Object get(String key) {
return redisTemplate.opsForValue().get(key);
}
Spring BootでRedisクラスタを設定する方法以上です。