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를 이용해 원하는 시간대의 데이터 조회

소비자와 소비자 그룹

  • 티켓 판매 서비스를 살펴보자
  • 티켓을 결제할 때 카드의 유효성 검사, 사용자 잔고 확인 등 선행 작업 후 결제가 진행되어야 하므로 이벤트 순서 보장이 중요함
  • 레디스 스트림은 메시지 순서가 보장됨
  • 카프카와 유사하게 소비자 그룹 개념이 존재
  • 하지만 파티션 개념은 없고 레디스 스트림은 항상 한 소비자가 읽지 않은 데이터만을 읽어감

results matching ""

    No results matching ""