일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
Tags
- aggs
- ann
- Selenium
- NORI
- API
- request cache
- JPA
- api cache
- Query
- Aggregation
- mysql
- java crawler
- 양자컴퓨터
- elasticsearch cache
- Elastic
- Analyzer
- Elasticsearch
- redis
- vavr
- aqqle
- java
- Cache
- KNN
- TSLA
- file download
- 테슬라
- 아이온큐
- IONQ
- dbeaver
- Docker
Archives
- Today
- Total
아빠는 개발자
[java] redisTemplate과 cacheManager 본문
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
반응형