로컬에 Redis를 띄워서 테스트 코드를 검증할 수도 있지만, 테스트 코드는 동일한 환경에서 실행되어야 한다고 생각하기 때문에 다른 방법을 찾아봤다.

속도를 감안하더라도 격리된 환경에서 테스트를 할 수 있기 때문에 TestContainer를 선택했다.
testImplementation "org.testcontainers:testcontainers:1.19.0"
testImplementation "org.testcontainers:junit-jupiter:1.19.0"
main 경로에 생성한다.
@EnableCaching
@Configuration
public class RedisConfig {
@Value("${spring.data.redis.host}")
private String host;
@Value("${spring.data.redis.port}")
private int port;
@Bean
public RedisConnectionFactory redisConnectionFactory() {
return new LettuceConnectionFactory(host, port);
}
@Bean
public RedisTemplate<String, Long> redisTemplate() { // 인자에 따라 설정 다르게 하기
RedisTemplate<String, Long> redisTemplate = new RedisTemplate<>();
redisTemplate.setKeySerializer(new StringRedisSerializer());
redisTemplate.setValueSerializer(
new GenericToStringSerializer<>(Long.class)); // Long 값을 다루므로 설정 변경
redisTemplate.setConnectionFactory(redisConnectionFactory());
return redisTemplate;
}
}