X
회원가입 Register
X

새로운 정보를 깔끔하게 정리해서 이메일로
보내드립니다.
받아보실래요? 좋아요

redis commands streams xreadgroup

XREADGROUP

레디스 개발자 교육 신청 레디스 정기점검/기술지원
Redis Technical Support
레디스 엔터프라이즈 서버
Redis Enterprise Server

소비자그룹을 이용한 데이터 읽기

사용법은 XREADGROUP GROUP group consumer count 1 STREAMS key id-or->입니다.
마지막 인수인 ID는 일반적으로 특정 id를 지정하기 보다는 특별한 id인 '>'를 사용합니다. 그러면 명령이 실행될 때마다 다음 데이터를 읽어옵니다.

Example

명령> XREADGROUP GROUP CG-A C1 count 1 STREAMS sensor-1234 >
결과> 1) 1) "sensor-1234"
2) 1) 1) 1538319053569-0
2) 1) "temperature"
2) "98.7"
명령> XREADGROUP GROUP CG-A C1 count 1 STREAMS sensor-1234 >
결과> 1) 1) "sensor-1234"
2) 1) 1) 1538319053569-1
2) 1) "temperature"
2) "98.8"

XREADGROUP 명령으로 데이터를 읽고 처리한 후에는 반드시 XACK로 처리가 완료되었음을 통지해야 합니다.

BLOCK 옵션

BLOCK 옵션을 사용하면 데이터가 없을 경우, 지정한 시간(밀리초) 동안 데이터가 들어오기를 기다렸다 읽어옵니다.

  • XREADGROUP GROUP group consumer count 1 BLOCK 1000 STREAMS key>

XREAD에서 BLOCK 옵션을 사용할 경우 처음에만 '$'를 사용합니다만, 여기서는 계속 '>'를 사용합니다.

스트림 하나에 여러 소비자 할당하기

여러 소비자가 돌아가면서 스트림 하나의 데이터를 처리할 수 있습니다. 하나의 스트림에 처리해야 할 데이터가 많고, 처리 시간이 오래 걸린다면, 소비자(consumer)를 여러 개 지정할 수 있습니다.

  • XREADGROUP GROUP CG-A Consumer-1 count 1 STREAMS sensor-1234 >
    결과: temperature 100
  • XREADGROUP GROUP CG-A Consumer-2 count 1 STREAMS sensor-1234 >
    결과: temperature 101
  • XREADGROUP GROUP CG-A Consumer-3 count 1 STREAMS sensor-1234 >
    결과: temperature 102

스트림 여러 개 지정하기

스트림 여러 개에서 데이터를 읽어올 수 있습니다.

  • XREADGROUP GROUP CG-A Consumer-1 count 1 STREAMS sensor-1234 sensor-5678 >>

이 경우 count 1은 각 스트림에서 1개 씩 데이터를 읽어옵니다.


명령문

XREADGROUP GROUP group consumer
[COUNT count] [BLOCK milliseconds]
STREAMS key [key ...] ID [ID ...]

  • 이 명령은 version 5.0.0 부터 사용할 수 있다.
  • 논리적 처리 소요시간은 O(log(N)+M)이다. N은 스트림에 저장된 엔트리(ID) 개수이고, M은 리턴될 엔트리 개수이다.

<< XGROUP XREADGROUP XACK >>

Email 답글이 올라오면 이메일로 알려드리겠습니다.

Email redisgate@gmail.com Address 서울시 강남구 강남대로 342 역삼빌딩 5층 (역삼동) 우 06242 Telephone 02.503.2235 Copyright © 2014-2026 redisGate
All right reserved

AltStyle によって変換されたページ (->オリジナル) /