개요
Redis (Remote Dictionary Server)는 오픈소스 인메모리 데이터 구조 서버입니다. 캐시, 메시지 브로커, 세션 저장소, 실시간 순위표 등 다양한 용도로 사용되며, 초당 수백만 건의 요청을 처리할 수 있는 극도로 빠른 성능이 특징입니다.
- 라이선스: SSPL (2024~) / BSD (기존) → Valkey 포크 (BSD, Linux Foundation)
- 공식 사이트: https://redis.io
- Valkey: https://valkey.io (Redis OSS 커뮤니티 포크)
핵심 데이터 구조
| 타입 | 설명 | 용도 |
|---|---|---|
| String | 단일 키-값 | 캐시, 카운터, 세션 |
| Hash | 필드-값 쌍의 맵 | 사용자 프로필, 객체 |
| List | 순서 있는 문자열 목록 | 큐, 타임라인 |
| Set | 중복 없는 집합 | 태그, 유니크 방문자 |
| Sorted Set | 점수 기반 정렬 집합 | 순위표, 우선순위 큐 |
| Stream | 이벤트 로그 (Kafka 유사) | 이벤트 소싱, 로그 |
| JSON | RedisJSON 모듈 | 문서 저장 |
주요 기능
캐시 (Cache)
- TTL 기반 자동 만료
- LRU/LFU 메모리 정책
- PostgreSQL, MySQL 앞단 캐시로 가장 많이 사용
Pub/Sub & Streams
- 실시간 메시지 발행/구독
- Redis Streams: 영속적 이벤트 로그 (소비자 그룹 지원)
영속성 (Persistence)
- RDB: 주기적 스냅샷
- AOF: 모든 쓰기 명령 기록 (Append-Only File)
- RDB + AOF 조합 권장
고가용성
- Sentinel: 자동 페일오버, 모니터링
- Cluster: 데이터 샤딩 (최대 1,000 노드)
Valkey 포크
2024년 Redis Labs가 라이선스를 SSPL로 변경하면서, Linux Foundation 주도로 Valkey가 포크됨.
| 항목 | Redis | Valkey |
|---|---|---|
| 라이선스 | SSPL | BSD 3-Clause |
| 후원 | Redis Inc. | Linux Foundation, AWS, Google |
| 호환성 | 기준 | Redis 7.2 완전 호환 |