= 키-값(key-value) 구조로 데이터를 저장하는 인메모리 데이터 저장소.
항목 | 설명 |
---|---|
인메모리 | 디스크 대신 메모리에 저장해서 빠른 속도 |
Persistence 지원 | 필요하면 디스크에 주기적으로 저장 가능 (AOF, RDB) |
다양한 자료구조 | String, List, Set, Sorted Set, Hash, HyperLogLog 등 |
싱글 스레드 기반 | I/O 멀티플렉싱으로 고성능 유지 (논블로킹) |
Pub/Sub 지원 | 메시지 브로커처럼 채널 기반 발행/구독 가능 |
간단한 설치 및 사용 | 몇 줄 명령어로 바로 사용 가능 |
모든 데이터는 RAM(메모리)에 저장.
→ 읽기/쓰기가 수천~수만 QPS(초당 쿼리 수)로 엄청 빠르다.
Master: 데이터를 읽고 쓰는 기본 Redis 서버.
Replica(Slave): Master 서버의 데이터를 그대로 복제해 읽기 전용으로 유지.
→ Master가 데이터를 변경하면 그 변경 사항을 Replica에게 자동 전파.
읽기 부하 분산 가능 (Replica에서도 읽기 허용 가능).
장애 복구 시, Replica를 승격해 Master로 만들 수 있음(replicaof no one
명령 사용).
주의할 점은 Replication은 비동기라서, Master 장애 시 데이터 유실 가능성 있음.
자료구조 | 설명 | 예시 |
---|---|---|
String | 가장 기본적인 값 | "user:1:name" = "Yunbin" |
List | 순서가 있는 값들의 리스트 | 메시지 큐 |
Set | 중복 없는 집합 | 유저가 가입한 그룹들 |
Sorted Set (ZSet) | 점수에 따라 정렬되는 집합 | 랭킹 시스템 |
Hash | 필드-값 쌍 저장 | 유저 정보 (name, age, etc) |
HyperLogLog | 대략적인 카운팅용 | 유니크 방문자 수 계산 |