핵심 요약
Redis Labs가 2024년 SSPL로 라이센스 변경한 이후 in-memory DB 시장이 분화. Redis 8 (commercial), Valkey (오픈소스 fork, AWS·GCP 주도), Dragonfly (multi-thread), KeyDB (multi-thread, fork) — 4개 옵션이 모두 production-ready.
- Redis 8: vector type·streams 강화·라이센스 변경
- Valkey: BSD-3, AWS·GCP·Snap이 fork
- Dragonfly: multi-thread·dashtable·세 배 빠름
- KeyDB: multi-thread·active replication
1. 성능 비교 (실측, 8 core 노드)
| 지표 | Redis 8 | Valkey 8 | Dragonfly | KeyDB |
|---|---|---|---|---|
| SET QPS (single thread) | 180K | 180K | 200K | 180K |
| SET QPS (전체 코어) | 180K (single) | 180K (single) | 1.4M | 900K |
| 메모리 효율 | baseline | baseline | +30% | baseline |
| 지연 (p99) | 1ms | 1ms | 0.5ms | 0.8ms |
Dragonfly가 가장 빠름. 단 클러스터·sentinel은 Redis가 우위.
2. Redis 8 신기능
# Vector Type (네이티브)
FT.CREATE idx ON HASH PREFIX 1 doc: SCHEMA \
embedding VECTOR FLAT 6 TYPE FLOAT32 DIM 1024 DISTANCE_METRIC COSINE
FT.SEARCH idx "*=>[KNN 10 @embedding $vec]" PARAMS 2 vec "..."
# Streams 강화 — XAUTOCLAIM
XAUTOCLAIM mystream consumer-group consumer 60000 0 COUNT 100
# JSON 모듈 내장
JSON.SET user:1 . '{"name":"Alice","age":30}'
JSON.GET user:1 .name3. Valkey — Redis 호환 fork
# 설치
apt install valkey # Ubuntu 24.04+
# 또는 docker run valkey/valkey:8
# Redis 클라이언트 그대로 작동
redis-cli -h valkey-server PING
# PONGRedis 7.4와 100% wire compatible. 라이센스 BSD-3.
4. Dragonfly — multi-thread 기반
# 설치
docker run -p 6379:6379 docker.dragonflydb.io/dragonflydb/dragonfly
# 기존 redis-cli 그대로
redis-cli -p 6379 SET key value
# 8 core 노드에서 자동으로 8개 thread 활용shared-nothing 아키텍처. 각 thread가 자기 데이터 영역. 락 없음.
5. 메모리 모델 — Dragonfly의 dashtable
Redis의 hashtable + small list inline 최적화. 평균 30% 메모리 절감. 1억 키 저장 시 10GB → 7GB 수준.
6. 영속성
| 도구 | RDB | AOF | 특이 |
|---|---|---|---|
| Redis 8 | O | O | 전통 |
| Valkey | O | O | Redis 동일 |
| Dragonfly | O | O | 스냅샷 매우 빠름 (점진) |
| KeyDB | O | O | FLASH 옵션 |
7. 클러스터·고가용성
# Redis Cluster (16384 slots)
redis-cli --cluster create node1:6379 node2:6379 node3:6379 \
--cluster-replicas 1
# Dragonfly Cluster (실험적)
# 단일 노드 강함 → Redis 클러스터만큼 성숙하지 않음분산 클러스터는 Redis가 가장 성숙. Dragonfly는 단일 노드를 거대하게 (RAM 1TB까지).
8. AWS ElastiCache·MemoryDB
| 서비스 | 엔진 | 특징 |
|---|---|---|
| ElastiCache for Redis | Redis 7.x | SSPL 변경 영향 없음 |
| ElastiCache for Valkey | Valkey 7.4 | 가격 33% 저렴 |
| MemoryDB for Redis | Redis OSS | multi-AZ durable |
| MemoryDB for Valkey | Valkey | NEW (2025) |
AWS는 Valkey를 적극 밀어 Redis 라이센스 회피. 새 도입은 Valkey 권장.
9. 의사결정 매트릭스
| 워크로드 | 1순위 |
|---|---|
| 단순 캐시 (대규모 분산) | Valkey (AWS) / Redis Cluster |
| 단일 노드 최대 성능 | Dragonfly |
| vector·JSON 통합 사용 | Redis 8 (또는 Valkey 8) |
| active-active 복제 | KeyDB |
| 오픈소스 우선 | Valkey |
| 큰 RAM 노드 (1TB+) | Dragonfly |
10. 마이그레이션 — Redis → Valkey
# 거의 zero-downtime
# 1) 새 Valkey 인스턴스 생성
# 2) Redis 데이터 dump (RDB)
redis-cli SAVE
scp /var/lib/redis/dump.rdb valkey-host:/var/lib/valkey/
# 3) Valkey 시작
systemctl start valkey
# 4) 클라이언트 endpoint만 변경
# 5) 기존 Redis 종료wire protocol·command 완전 호환. 클라이언트 코드 변경 불필요.
11. 보안
- ACL — Redis 6+, 모든 fork 지원
- TLS — 모두 지원 (단 Dragonfly는 일부 cipher 제한)
- SECRET·CONFIG GET 명령 RBAC로 차단 권장
실전 운영 체크리스트
- 모니터링: redis_exporter + Grafana 대시보드
- maxmemory-policy: 워크로드에 맞게 (allkeys-lru, volatile-lru, noeviction)
- persistence: AOF + RDB 조합 권장
- slowlog: 100ms 이상 쿼리 자동 기록
- backup: 매일 RDB → S3

댓글 0