Learning
토픽 200 / 201·병행제어 문제점

Redis

Redis

인메모리 키-값 데이터 구조 저장소로, 캐시/세션/메시지 브로커/실시간 분석 등 다목적으로 활용되는 오픈소스 데이터베이스

데이터 구조: String(단순 값/카운터), Hash(객체/필드), List(큐/스택), Set(고유 집합/교집합), Sorted Set(순위/리더보드)

아키텍처

  • Standalone: 단일 노드, 개발/소규모
  • Sentinel: 마스터-슬레이브 + 자동 페일오버 (모니터링/알림/자동 승격)
  • Cluster: 데이터 샤딩(16384 해시 슬롯), 수평 확장, 고가용성

Pub/Sub: 메시지 브로커 기능, 실시간 알림/채팅 (메시지 영속성 없음, 구독 시점 이후만 수신)

영속성

  • RDB (Snapshotting): 주기적 스냅샷(BGSAVE), 빠른 복구, 데이터 손실 가능
  • AOF (Append Only File): 모든 쓰기 명령 기록, 데이터 손실 최소, 파일 크기↑
  • RDB + AOF 병용: 안정성과 복구 속도 균형

적용사례: 분산 캐시, 세션 저장소, 실시간 리더보드, 분산 락, Rate Limiting, 메시지 큐(Streams)

비교: Redis(다양한 자료구조/영속성/Cluster) vs Memcached(단순 KV/멀티스레드/영속성 없음)

연관: 캐싱, 세션 관리, Pub/Sub, 분산 락, Consistent Hashing