본문 바로가기
Big Data

[Redis] BLPOP

by 유주원 2012. 10. 22.

Blocking 된 상태에서 list를 pop 하는 것을 말한다. LPOP의 blocking 버전이라고 할 수 있다.
BLPOP가 호출이 되면, list의 헤더에 있는 key 값이 호출된다.

redis> BLPOP list1 list2 list3 0

 list1, list2, list3에 존재하는 키 값중 가장 먼저 쓰여진 list1에 저장된 키 값 하나를 pop 한다. list1에 값이 없다면 list2의 값을 pop 한다. 만약 list1, list2, list3 모두 값이 없다면 redis는 다른 client에서 해당 list에 값을 입력하기 전까지는 block 된다. ( 맨 마지막 0은 timeout 파라미터로써 0일 경우엔 INFINITE, 그 외엔 초단위의 타임 아웃 값을 가짐)

redis> RPUSH list1 a b c d e
(integer) 5
redis> RPUSH list2 1 2 3 4 5
(integer) 5
redis> BLPOP list1 list2 0
1)"list1"
2)a
redis> BLPOP list2 0
1)"list2"
2)1