아빠는 개발자

[java] redisTemplate과 cacheManager 본문

카테고리 없음

[java] redisTemplate과 cacheManager

father6019 2025. 3. 11. 20:59
728x90
반응형

redisTemplate과 cacheManager는 Spring Framework에서 Redis를 사용할 때 사용 

RedisTemplate

RedisTemplate은 Spring Data Redis에서 Redis와 직접적으로 상호작용할 수 있게 해주는 클래스

주요 특징

  • Redis의 다양한 자료구조 (String, Hash, List, Set, ZSet 등)를 직접 사용할 수 있습니다.
  • 더 세밀한 Redis 조작이 가능함 (key, value 직접 설정, TTL 관리 등).
  • 커스텀 직렬화/역직렬화 설정 가능.
@Autowired
private RedisTemplate<String, String> redisTemplate;

public void saveData() {
    redisTemplate.opsForValue().set("myKey", "myValue");
}

public String getData() {
    return redisTemplate.opsForValue().get("myKey");
}

 

CacheManager

CacheManager는 **Spring의 캐시 추상화(Cache Abstraction)**에서 사용되며, @Cacheable, @CachePut, @CacheEvict 같은 애너테이션을 통한 캐시 사용을 도와줍니다.

주요 특징

  • 선언적 캐싱이 가능 (애너테이션 기반).
  • 여러 종류의 캐시 구현체(Redis, Ehcache, Caffeine 등)를 동일한 방식으로 사용할 수 있음.
  • 내부적으로 Redis를 사용할 수 있지만, 직접 key를 다루지는 않음 (보다 추상적인 수준).
@Cacheable(value = "users", key = "#id")
public User getUserById(String id) {
    // DB에서 유저 정보 조회
    return userRepository.findById(id);
}

 

 

차이점 요약

  RedisTemplate CacheManager
목적 Redis 직접 조작 선언적 캐싱 지원
사용 방식 명령어 직접 작성 애너테이션 기반 추상화
유연성 높음 (세부 조작 가능) 제한적 (자동 관리 중심)
대상 Redis 자료구조 전체 캐시로 사용되는 데이터
사용 난이도 비교적 복잡 간편
728x90
반응형