1. Redis Streams 소개
- Redis Streams는 Redis 5.0에서 도입된 새로운 데이터 타입으로, 추가 전용(append-only) 로그 구조를 기반으로 하는 강력한 스트리밍 데이터 처리 기능을 제공합니다.
- 기존의 단순한 로그 구조를 넘어서 다음과 같은 고급 기능들을 제공합니다:
- O(1) 시간 복잡도의 랜덤 액세스
- 소비자 그룹을 통한 복잡한 소비 전략 구현
- 실시간 이벤트 기록 및 동시 배포
- 메시지 영속성과 장애 복구
1.1 주요 활용 사례
- 이벤트 소싱 (사용자 행동, 클릭 등의 추적)
- 센서 모 니터링 (필드 디바이스의 데이터 수집)
- 알림 시스템 (사용자별 알림 이력 관리)
- 실시간 데이터 분석 파이프라인
- 분산 시스템 간 메시지 전달
2. 기본 개념과 명령어
2.1 스트림 항목과 ID
Redis Streams의 각 항목은 고유한 ID를 가지며, 이는 타임스탬프와 시퀀스 번호로 구성됩니다:
<millisecondsTime>-<sequenceNumber>
예시:
> XADD mystream * sensor-id 1234 temperature 19.8
"1692632086370-0"
2.2 핵심 명령어
- XADD: 스트림에 새 항목 추가
- XREAD: 스트림에서 항목 읽기
- XRANGE: 지정된 ID 범위의 항목 조회
- XLEN: 스트림의 항목 개수 반환
- XGROUP: 소비자 그룹 관리
- XREADGROUP: 소비자 그룹을 통한 항목 읽기
- XACK: 메시지 처리 완료 확인