본문 바로가기

Backend/Spring

Spring Boot ReactiveRedisTemplate<String, Integer>

ReactiveRedisTemplate에서 value의 타입을 정하는 설정 코드에요.

Java

@Configuration
public class RedisConfiguration {

  @Bean
  public ReactiveRedisTemplate<String, Integer> numberRedisTemplate(LettuceConnectionFactory lettuceConnectionFactory) {
    StringRedisSerializer keySerializer = new StringRedisSerializer();
    GenericToStringSerializer<Integer> valueSerializer = new GenericToStringSerializer<>(Integer.class);
    RedisSerializationContext.RedisSerializationContextBuilder<String, Integer> contextBuilder =
        RedisSerializationContext.newSerializationContext(keySerializer);
    RedisSerializationContext<String, Integer> context = contextBuilder.value(valueSerializer).build();
    return new ReactiveRedisTemplate<>(lettuceConnectionFactory, context);
  }
}

Kotlin

@Configuration
class RedisConfiguration {
  
  @Bean
  fun numberRedisTemplate(lettuceConnectionFactory: LettuceConnectionFactory): ReactiveRedisTemplate<String, Int> {
    val keySerializer = StringRedisSerializer()
    val valueSerializer = GenericToStringSerializer(Int::class.java)
    val context = RedisSerializationContext.newSerializationContext<String, Int>(keySerializer)
      .value(valueSerializer)
      .build()
    return ReactiveRedisTemplate(lettuceConnectionFactory, context)
  }
}