TestForge | 📊 Plogger ✍️ Blog 📚 Docs
TestForge Blog

AI DevOps Korea

AI 서비스 운영과 성능개선을 위한 실전 허브

aidevops.kr에서 LLMOps, RAG, AI Agent, 평가, 관측성, 비용-성능 튜닝을 운영팀 관점으로 정리합니다.

← 전체 포스트

Redis 아키텍처 설계 가이드 — Standalone부터 Cluster까지

Redis Standalone, Sentinel, Cluster 세 가지 아키텍처의 차이점과 서비스 규모별 선택 기준을 실무 관점에서 정리합니다.

TestForge Team ·

Redis 아키텍처 3종류

구분StandaloneSentinelCluster
노드 수13+6+ (최소)
HAXO (Failover)O (Failover)
수평 확장XXO (Sharding)
복잡도낮음중간높음
적합 규모개발/소규모중소규모대규모

1. Standalone

단일 노드. 장애 시 서비스 중단.

# docker-compose.yml
services:
  redis:
    image: redis:7-alpine
    ports:
      - "6379:6379"
    command: redis-server --maxmemory 256mb --maxmemory-policy allkeys-lru
    volumes:
      - redis-data:/data

적합한 경우: 개발 환경, 세션 캐시 정도의 소규모 서비스.

2. Sentinel (권장: 중소규모)

Master 1대 + Replica N대 + Sentinel 3대로 구성.
Master 장애 시 Sentinel이 자동으로 Replica를 Master로 승격합니다.

[Client] → [Sentinel 3대] → [Master]
                              ↓ Replica
# sentinel.conf
sentinel monitor mymaster 192.168.1.10 6379 2
sentinel down-after-milliseconds mymaster 5000
sentinel failover-timeout mymaster 60000
sentinel parallel-syncs mymaster 1

Spring Boot 연결:

spring:
  data:
    redis:
      sentinel:
        master: mymaster
        nodes:
          - 192.168.1.1:26379
          - 192.168.1.2:26379
          - 192.168.1.3:26379
      password: your-password

3. Cluster (대규모 / 수평 확장 필요 시)

데이터를 16384개 슬롯으로 분산. 최소 3 Master + 3 Replica = 6노드.

Slot 0~5460   → Master1 (+ Replica1)
Slot 5461~10922 → Master2 (+ Replica2)
Slot 10923~16383 → Master3 (+ Replica3)
# 클러스터 생성
redis-cli --cluster create \
  192.168.1.1:6379 192.168.1.2:6379 192.168.1.3:6379 \
  192.168.1.4:6379 192.168.1.5:6379 192.168.1.6:6379 \
  --cluster-replicas 1

주의: Multi-key 명령어(MGET, MSET 등)는 같은 슬롯에 있는 키만 가능.
해결: Hash Tag 사용 → {user:1}:profile, {user:1}:session

메모리 정책 선택

# maxmemory-policy 옵션
allkeys-lru      # 전체 키 중 LRU 제거 (캐시 용도에 적합)
volatile-lru     # TTL 있는 키만 LRU 제거
allkeys-lfu      # Redis 4.0+ LFU 알고리즘
noeviction       # 제거 안 함, 쓰기 오류 반환 (세션 저장소)

데이터 영속성 설정

# RDB (스냅샷) - 성능 우선
save 900 1      # 900초 동안 1개 이상 변경 시 저장
save 300 10
save 60 10000

# AOF (Write-ahead log) - 내구성 우선
appendonly yes
appendfsync everysec  # 1초마다 fsync (성능/내구성 균형)

운영 필수 모니터링 지표

# 실시간 통계
redis-cli info stats | grep -E "instantaneous|ops_per_sec|rejected"

# 메모리 사용량
redis-cli info memory | grep -E "used_memory_human|maxmemory_human"

# Slow log (10ms 이상 명령어)
redis-cli slowlog get 10

아키텍처 선택 가이드

  • DAU 1만 이하: Standalone
  • DAU 1만~100만: Sentinel (Master 1 + Replica 2)
  • DAU 100만 이상 또는 데이터 100GB+: Cluster
  • 세션 저장소: Sentinel + noeviction
  • 캐시 레이어: Standalone 또는 Cluster + allkeys-lru