Redis Stream
Redis Stream
- 대량의 데이터를 효율적으로 처리하는 플랫폼으로 활용
- 여러 생산자가 생성한 데이터를 다양한 소비자가 처리할 수 있게 지원하는 데이터 저장소 및 중간 큐잉 시스템으로 사용
Kafka와 Redis Stream
- 카프카의 영향을 많이 받은 시스템
- 카프카와 유사한 여러 기능을 갖고 있으며 특정 기능은 카프카보다 뛰어난 처리 가능
데이터의 저장
- 하나의 stream 자료구조가 하나의 stream을 의미
- stream 또한 하나의 key에 연결된 자료구조
- 각 메시지는 시간과 관련된 유니크한 ID를 가지며 중복되지 않음
<millisecondsTime>-<sequenceNumber>
- 실제 아이템이 stream에 저장될 시점의 레디스 노드 로컬 시간
- XADD 명령어로 스트림 생성(최초 생성시)과 메시지 저장이 가능
> XADD Email * subject "first" body "hello?"
"1659114481311-0"

데이터 조회
- 실시간 리스닝
- 새로운 메시지가 들어올 때까지 토픽을 계속 리스닝
- 특정 데이터 조회
- ID를 이용해 원하는 시간대의 데이터 조회
소비자와 소비자 그룹
- 티켓 판매 서비스를 살펴보자
- 티켓을 결제할 때
카드의 유효성 검사,사용자 잔고 확인등 선행 작업 후 결제가 진행되어야 하므로 이벤트 순서 보장이 중요함 - 레디스 스트림은 메시지 순서가 보장됨
- 카프카와 유사하게
소비자 그룹개념이 존재 - 하지만 파티션 개념은 없고 레디스 스트림은 항상 한 소비자가 읽지 않은 데이터만을 읽어감
