Skip to content

Spring Boot ‐ Spring Data Reactive Redis란?

woo jin edited this page Dec 12, 2025 · 1 revision

Spring Data Reactive Redis

Spring Data Redis vs Redisson vs Spring Data Reactive Redis

구분 Spring Data Redis Redisson Spring Data Reactive Redis
프로그래밍 모델 동기(Sync) 기반 동기 + 비동기 + Reactive 모두 지원 완전 Reactive (Non-blocking)
사용 목적 캐시, 간단한 Key-Value 접근 분산 락, RMap, RList, RQueue 등 고급 Redis 기능 제공 고성능 Non-blocking I/O 기반 처리
Redis 프로토콜 사용 방식 Lettuce/Jedis 기반 추상화 자체 Redis Client + 고급 구조체 제공 Lettuce Reactive 기반 직접 접근
분산 락 지원 제한적 (직접 구현해야 함) 강력한 분산 락 기능 제공(RLock) 직접 Lua Script 등으로 구현 필요
데이터 구조 활용성 기본적(Hash, List, Set 등) Redis를 Java 컬렉션처럼 사용 가능 (RMap, RList …) 기본 구조 (Reactive로 제공)
트랜잭션 지원 (MULTI/EXEC) 지원 Reactive Transaction 지원
Pipeline / PubSub 지원 지원 Reactive 기반으로 자연스럽게 지원
성능 보통 (Sync → 블로킹) 보통~좋음(비동기 기능 효율적) 최고 수준 (Non-blocking Netty)
커넥션 풀 관리 Lettuce/Jedis 위임 자체 커넥션 풀 최적화 Reactive Netty 기반 효율적
클러스터 지원 지원 더 강력한 자동 failover/재전연결 지원 지원
학습 난이도 쉬움 보통 (기능이 많음) 중간~높음 (Reactive 학습 필요)
주요 장점 Spring 생태계와의 통합이 뛰어남 분산락, Fair Lock, RedLock 등 고급 기능 Reactive WebFlux와 자연스럽게 통합
주요 단점 블로킹 I/O 라이브러리가 무겁고 추상화가 깊음 모든 호출이 Reactive여야 해서 러닝커브 큼
실무 사용 추천 간단한 캐시, Token 관리 분산 락, 재시도 로직, 고급 자료구조가 필요한 경우 고성능 스트리밍, 대량 트래픽 처리

Cache Aside Pattern

image
  • 캐시로부터 데이터를 읽는 시도를 한다.
  • 만약 데이터가 없다면 DB를 조회하고 있다면 캐시로부터 조회한다.
  • 결과를 반환한다.

@Cacheable 어노테이션

Cache Evict

Scheduled Cache Evict

@CachePut 어노테이션

📖 Java

📖 Kotlin

📖 Coroutine

📖 Spring

📖 Spring Security

📖 Spring Batch

📖 Reactive Programming

📖 Database

📖 MySQL

📖 Redis

📖 JPA

📖 QueryDsl

📖 MSA

📖 Kafka

📖 Apache Flink

  • [Apache Flink - Apache Flink Architecture]
  • [Apache Flink - Stream Processing]
  • [Apache Flink - Data Stream API & Window]
  • [Apache Flink - State Management]

📖 HTTP

📖 AWS

📖 Docker

📖 Kubernetes

📖 CI/CD

📖 Nginx

📖 Monitoring🥈

  • [Monitoring - Log Concept]
  • [Monitoring - Log Level & Filter]
  • [Monitoring - Logback]
  • [Monitoring - Log Collection with ELK Stack]
  • [Monitoring - Log Monitoring with Kibana]
  • [Monitoring - Building a Monitoring System with Spring Boot Actuator]
  • [Monitoring - Server Monitoring with Prometheus and Grafana with Discord Alerts]

📖 Test

📖 Effective Java 3/E

📖 Kotlin Academy - Effective Kotlin

📖 Kotlin Academy - 핵심편

📖 스프링으로 시작하는 리액티브 프로그래밍

📖 가상 면접 사례로 배우는 대규모 시스템 설계 기초 1

📖 가상 면접 사례로 배우는 대규모 시스템 설계 기초 2

📖 Clean Code

📖 리팩토링 2판

📖 주니어 백엔드 개발자가 반드시 알아야 할 실무 지식

📖 GraphQL

Clone this wiki locally