Spring은 Redis를 편하게 사용할 수 있도록
다양한 추상화와 기능을 제공합니다.
즉 단순 Redis Client 수준이 아니라
- Template 패턴
- Cache 자동 처리
- 메시징 지원
- Reactive 지원
까지 제공하여
Redis를 매우 쉽게 사용할 수 있는 환경을 만들어 줍니다.
이번 글에서는
실무에서 자주 사용하는 기능만 핵심 위주로 정리해 보겠습니다
Spring에서 Redis 쉽게 쓰게 해주는 핵심 기능
- RedisTemplate
- StringRedisTemplate
- Spring Cache abstraction
- Redis Repository
- Message Listener (Pub/Sub)
- Reactive Redis
1. RedisTemplate (가장 핵심)
Spring Redis의 중심 클래스입니다.
Redis 명령어를 Java 객체 방식으로 사용할 수 있게 해 줍니다.
사용 예시
redisTemplate.opsForValue().set("user:1", "donguk");
실제로 Redis에서는
SET user:1 donguk
명령이 실행됩니다.
자료구조별 API 제공
RedisTemplate은 Redis 자료구조와 거의 1:1로 매핑됩니다.
- opsForValue() → String
- opsForHash() → Hash
- opsForList() → List
- opsForSet() → Set
- opsForZSet() → Sorted Set
Redis 개념을 그대로 Java 코드에서 사용할 수 있습니다.
2. StringRedisTemplate
RedisTemplate의 특수 버전입니다.
Key / Value를 모두 String으로 처리합니다.
왜 많이 사용하는가
RedisTemplate 기본 설정은 JDK Serialization을 사용합니다.
그래서 Redis CLI에서 값을 확인하면
\xac\xed\x00\x05t\x00
같은 형태로 저장됩니다.
따라서 실제 사용환경에서는
StringRedisTemplate을 훨씬 많이 사용합니다.
3.pring Cache Abstraction ⭐⭐⭐
Spring은 캐시를 자동으로 처리해 주는 기능을 제공합니다.
AOP 기반으로 Cache Hit / Miss를 자동 관리합니다.
사용 예시
@Cacheable("user")
public User getUser(Long id) {
return repository.findById(id);
}
동작 방식
- Cache Hit → 메서드 실행하지 않음
- Cache Miss → DB 조회 후 자동 캐싱
Look Aside 캐싱 전략이 자동으로 구현됩니다.
주요 어노테이션
- @Cacheable → 조회 캐시
- @CachePut → 캐시 갱신
- @CacheEvict → 캐시 삭제
4. Redis Repository (Spring Data Redis)
Redis를 마치 DB처럼 사용할 수 있게 해주는 기능입니다.
예시
@RedisHash("user")
class User {
@Id
Long id;
String name;
}
userRepository.save(user);
→ Redis에 자동 저장됩니다.
잘 사용하지 않는 이유
- Key 설계를 직접 하기 어려움
- TTL 제어가 제한적
- 성능 튜닝이 어려움
⭐ RedisTemplate을 직접 사용하는 방식이 많습니다.
5.Redis Message Listener (Pub/Sub)
Spring은 Redis 기반 메시징 기능도 제공합니다.
구조
- 서버 A → Publish
- 서버 B → Subscribe
활용 사례
- 캐시 무효화 이벤트
- 실시간 알림
- 분산 시스템 이벤트 처리
6. Reactive Redis (고급)
Spring WebFlux 환경에서는
Non-blocking Redis Client를 사용할 수 있습니다.
예를 들어..
ReactiveRedisTemplate
사용 상황
- 초고트래픽 시스템
- Streaming 처리
- 이벤트 기반 서버
가장 많이 사용하는 구조 (중요)
실제 서비스에서는 보통 이렇게 사용합니다.
- 조회 캐싱 → Spring Cache + Redis
- 카운팅 / 세션 → StringRedisTemplate
- 분산 이벤트 → Pub/Sub
- Repository → 거의 사용하지 않음
즉
RedisTemplate + Cache abstraction 조합이 가장 많이 사용됩니다.
정리
Spring은 Redis를 단순 Client 수준이 아니라
- Template 패턴
- Cache 자동화
- Repository 지원
- Reactive 지원
까지 제공하여
Redis를 매우 쉽게 사용할 수 있는 환경을 제공합니다.
하지만
Redis 성능은 결국 Key 설계 / TTL 전략 / 캐싱 전략에 따라 결정됩니다.
'🖥️ 컴퓨터 공부 > Redis' 카테고리의 다른 글
| 캐시 3대 문제 (0) | 2026.03.23 |
|---|---|
| Spring Data Redis 공식문서로 내부 동작 이해하기 (0) | 2026.03.21 |
| Redis 운영 시 반드시 알아야 할 위험 요소(위험한 명령어 / 메모리 폭발 / 모니터링 / 권장 설정) (1) | 2026.03.21 |
| Redis 영속성 & Failover 정리 (RDB / AOF / Failover) (0) | 2026.03.21 |
| Redis 아키텍처 정리 (Replication / Sentinel / Cluster / Sharding) (0) | 2026.03.20 |