Redis와 스프링 캐시 추상화 사용하기
Redis와 스프링 캐시 추상화 사용하기
스프링 애플리케이션에 Redis를 캐시로 연결하는 방법을 최소한의 노력으로 알려드릴게요. Spring Data Redis는 스프링 프레임워크의 캐시 추상화를 Redis에 구현해서, 스프링 애플리케이션에 Redis를 거의 수고 없이 연결할 수 있게 해 줘요. 스프링의 캐시 추상화는 메서드에 cache-aside를 적용해, 결과를 저장하고 재사용함으로써 실행 횟수를 줄여주는 방식이에요.
출처: Redis 공식 문서 - Use Redis with the Spring cache abstraction
캐시 추상화가 동작하는 방식
메서드가 호출되면 추상화는 같은 인자로 이전에 호출된 적이 있는지 확인해요. 그렇다면 캐시된 결과를 반환하고, 아니라면 메서드를 실행해 결과를 캐시한 뒤 반환해요. 이렇게 해서 비용이 큰 메서드의 호출 횟수를 줄일 수 있어요. 자세한 내용은 Spring cache abstraction 문서에서 확인할 수 있어요.
시작하기
간단히 말하면 Redis를 캐시 저장소로 쓰려면 다음 단계를 수행하면 돼요.
- Spring Data의 일부인 Redis cache manager를 사용해 캐시 저장소를 구성해요.
- 저장소에
@CacheConfig를 어노테이션으로 붙여요. - 저장소 메서드에
@Cacheable어노테이션을 붙여 그 메서드의 결과를 캐시해요.
예를 들어 보면 이렇게 되어요.
@CacheConfig("books")
public class BookRepositoryImpl implements BookRepository {
@Cacheable
public Book findBook(ISBN isbn) {...}
}
더 읽어볼 자료
스프링에서 Redis 캐시 추상화를 쓰는 방법을 더 배우려면 스프링 프레임워크 문서를 참고하면 돼요.