토픽 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