🖥️ 컴퓨터 공부/Redis

Spring에서 Redis 쉽게 사용하는 방법 정리 -활용

le2donguk 2026. 3. 21. 14:06

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 전략 / 캐싱 전략에 따라 결정됩니다.