Redis Design Patterns

https://redis.antirez.com/ 문서를 기반으로 한 Redis 디자인 패턴 학습 노트

개요

이 문서는 Redis를 활용한 30개의 디자인 패턴을 체계적으로 정리한 것입니다. Redis 창시자인 Salvatore Sanfilippo(antirez)가 작성한 패턴들을 기반으로 하며, 실무 적용을 위한 명령어 예시와 사용 시나리오를 포함합니다.

중요: 이 문서는 Redis(redis.io)에 특화되어 있습니다. Valkey, KeyDB, Dragonfly 등 Redis 호환 데이터베이스에서는 구현이 다를 수 있으므로 호환성을 확인해야 합니다.

패턴 분류

1. Fundamental Design Patterns (20개)

핵심 아키텍처 패턴으로, Redis를 사용하는 모든 시스템에서 필수적으로 이해해야 하는 패턴들입니다.

캐싱 패턴

동시성 제어

큐 및 메시지 처리

데이터 구조 활용

확장성 및 특수 용도

2. Community Patterns (6개)

Redis 커뮤니티에서 개발한 일반적인 사용 사례 패턴입니다.

3. Production Patterns (4개)

대규모 서비스 기업들의 실제 운영 사례입니다.

학습 로드맵

Phase 1: 기초 패턴 (1-2주차)

캐싱과 기본 데이터 구조 이해

graph LR
    A[Cache-Aside] --> B[Write-Through]
    B --> C[Write-Behind]
    C --> D[Cache Stampede]
    D --> E[Memory Optimization]

Phase 2: 분산 시스템 패턴 (3-4주차)

동시성 제어와 큐 처리

graph LR
    A[Distributed Locking] --> B[Redlock]
    B --> C[Atomic Updates]
    C --> D[Delayed Queue]
    D --> E[Streams Consumer Groups]

Phase 3: 고급 패턴 (5-6주차)

확장성과 특수 용도

graph LR
    A[Hash Tag Co-location] --> B[Cross-Shard Consistency]
    B --> C[Probabilistic Data Structures]
    C --> D[Vector Search]

Phase 4: 실무 적용 (7주차 이후)

커뮤니티 패턴과 프로덕션 사례 학습

빠른 참조

캐싱 패턴 선택 가이드

사용 사례 패턴 주요 명령어
읽기 중심, 약간의 오래된 데이터 허용 Cache-Aside GET, SETEX
강한 일관성 필요 Write-Through SET, GET
높은 쓰기 처리량 Write-Behind SET, async sync
인기 키, 초고속 액세스 Client-Side Cache CLIENT TRACKING

큐 패턴 선택 가이드

사용 사례 패턴 주요 명령어
단순 FIFO List LPUSH, RPOP
신뢰성 있는 전달 LMOVE LMOVE, LREM
지연 실행 Sorted Set ZADD, ZRANGEBYSCORE
다중 소비자 Streams XADD, XREADGROUP, XACK

카운팅/분석 구조 선택

사용 사례 구조 메모리
정확한 유니크 카운트 Set O(N)
근사 유니크 HyperLogLog 12KB 고정
멤버십 테스트 Bloom Filter 설정 가능
백분위수 T-Digest 설정 가능

참고 자료


Table of contents