BLPOP

<< RPUSHX BRPOP >>

데이터가 들어오면 리스트의 왼쪽에서 꺼내옴

사용법은 blpop key timeout 이다.
리스트에 데이터가 이미 있을 경우에는 LPOP와 같다. 데이터가 없을 경우에는 timeout(초) 만큼 기다린다.
timeout이 0일때, 데이터가 입력될때까지 기다린다. 데이터가 들어오면 pop을 하고 key, data, 시간(초)를 표시한다.

Example

Client A
명령>lpush key msg_1
결과>1




명령>lpush key msg_2
결과>1



Client B


명령>blpop key 0
결과>0) key
1) msg_1
명령>blpop key 0


결과>0) key
1) msg_2
(3.60s)

애니메이션 보기



timeout이 5일때는 5초 동안 데이터가 들어오기를 기다린다.

사용법은 blpop key 5 이다.

Example

Client A

명령>lpush key msg_3
결과>1






Client B
명령>blpop key 5


결과>0) key
1) msg_3
(3.17s)
명령>blpop key 5
결과>(nil)
(5.08s)

애니메이션 보기



key 여러 개 지정 가능

사용법은 blpop key1 key2 timeout 이다.
지정한 순서대로 리스트를 확인해서 데이터가 있으면 하나만 가져오고 종료한다.
key를 여러 개 지정했다고 여러 개 데이터를 가져오는 것은 아니다.

Example

Client A
명령>lpush key1 msg_4
결과>1
명령>lpush key2 msg_5
결과>1






Client B




명령>blpop key1 key2 0
결과>0) key1
1) msg_4
명령>blpop key1 key2 0
결과>0) key2
1) msg_5

애니메이션 보기



명령문

BLPOP key [key ...] timeout

  • 이 명령은 version 2.0.0 부터 사용할 수 있다.
  • 논리적 처리 소요시간은 O(1)입니다.
관련 명령 BRPOP, BRPOPLPUSH
Clients for Java Jedis, Lettuce, Redisson
Clients for C Hiredis

이 blocking(대기)명령은 웹 특성상 Redis Web Client에서 실행할 수 없습니다.


<< RPUSHX BLPOP BRPOP >>

질문하거나 댓글을 보려면 클릭하세요.  댓글수 :    조회수 :

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