Redis는 캐시만을 위한 도구가 아닙니다. 세션 스토어, 메시지 큐, 실시간 리더보드, Rate Limiter, Pub/Sub, 분산 락, 지리공간 데이터 등 다양한 용도로 활용됩니다.
Redis 실전 활용 패턴 7가지
Redis를 캐시 외에도 활용하는 실전 패턴 7가지를 정리한다. 세션 스토어, 큐(BullMQ), Pub/Sub, Rate Limiter, 리더보드, 분산 락, 실시간 카운터 구현 예시와 성능 팁을 포함한다.
한 줄 요약: Redis는 캐시를 넘어 세션 스토어, 메시지 큐, 리더보드, Rate Limiter, Pub/Sub, 분산 락까지 처리하는 인메모리 다목적 데이터 스토어다.
Redis를 단순 키-값 캐시로만 사용하고 있다면 기능의 10%만 활용하는 것이다. 이 가이드는 Redis의 다양한 데이터 구조와 실전 활용 패턴 7가지를 정리한다.
캐시 외의 활용


패턴 1 — 캐시: 가장 기본적인 사용법. DB 쿼리 결과를 Redis에 저장하고 TTL을 설정한다. Cache-aside 패턴(읽을 때 캐시 확인 → 없으면 DB → 캐시 저장)이 가장 일반적이다. 캐시 무효화 전략(TTL, 이벤트 기반, 수동)을 반드시 설계해야 한다.
패턴 2 — 세션 스토어: 서버리스 환경에서는 메모리 세션이 동작하지 않으므로 Redis에 세션을 저장한다. 패턴 3 — Rate Limiter: Sorted Set이나 카운터로 API Rate Limiting을 구현한다. 슬라이딩 윈도우 방식이 정확하다.
Redis Rate Limiter (Node.js)async function rateLimit(userId, limit = 60, window = 60) { const key = `ratelimit:${userId}`; const current = await redis.incr(key); if (current === 1) await redis.expire(key, window); return current <= limit; }
7가지 패턴
- 1. 캐시: DB 쿼리 결과 캐싱 (TTL 설정)
- 2. 세션: 사용자 세션 데이터 저장
- 3. Rate Limiter: API 요청 제한
- 4. 리더보드: Sorted Set으로 순위 관리
- 5. Pub/Sub: 실시간 메시지 전달
- 6. 큐: List로 작업 큐 구현
- 7. 분산 락: SETNX로 동시 접근 제어

고급 활용 패턴
패턴 4 — 리더보드: Sorted Set(ZADD, ZRANGE)으로 실시간 순위를 O(log N)에 관리한다. 패턴 5 — Pub/Sub: 실시간 알림, 채팅, 서버 간 이벤트 브로드캐스트에 사용. 패턴 6 — 분산 락: Redlock 알고리즘으로 여러 서버 간의 동시성을 제어한다. 패턴 7 — 스트림(Streams): Kafka 수준의 메시지 큐를 Redis 내에서 구현할 수 있다.
maxmemory-policy를 allkeys-lru로 설정해 메모리 초과 시 오래된 키를 자동 삭제하고, AOF/RDB 백업을 활성화하라.Redis 호스팅 비교
Upstash: 서버리스 Redis — 요청 기반 과금으로 트래픽이 적을 때 비용 효율적. 글로벌 복제 지원. Redis Cloud: 공식 관리형 서비스 — 클러스터, 자동 백업, RediSearch/RedisJSON 모듈 포함. ElastiCache (AWS): AWS 인프라와 통합, 대규모 프로덕션에 적합. Dragonfly: Redis 호환 대안 — 싱글 스레드 대신 멀티스레드로 성능 25배 향상 주장.