brpoplpush
BRPOPLPUSH
레디스 개발자 교육 신청 |
레디스 정기점검/기술지원 Redis Technical Support |
레디스 엔터프라이즈 서버 Redis Enterprise Server |
---|
데이터가 들어오면 리스트 오른쪽에서 데이터를 꺼내서 왼쪽에 넣는다.
사용법은 brpoplpush src_key dest_key timeout 이다.
결과는 rpop + lpush와 같음. 이 명령은 원자적으로 동작한다.
리스트에 데이터가 이미 있을 경우에는 RPOPLPUSH와 같다. 데이터가 없을 경우에는 timeout(초) 만큼 기다린다.
timeout이 0일때, 데이터가 입력될때까지 기다린다. 데이터가 들어오면 pop을 하고 data, 시간(초)를 표시한다.
Example: Reliable queue
Client A
명령> | lpush scr_key msg_1 |
결과> | 1 |
명령> | lpush scr_key msg_2 |
결과> | 1 |
Client B
명령> | brpoplpush src_key dest_key 0 |
결과> | msg_1 |
명령> | brpoplpush src_key dest_key 0 |
결과> | msg_2 (4.30s) |
timeout 지정
사용법은 brpoplpush src_key dest_key timeout 이다.
Example: Reliable queue
Client A
명령> | lpush src_key msg_1 |
결과> | 1 |
Client B
명령> | brpoplpush src_key dest_key 5 |
결과> | msg_1 |
명령> | brpoplpush src_key dest_key 5 |
5초 후 | |
결과> | (nil) (5.03s) |
명령문
BRPOPLPUSH source destination timeout
- 이 명령은 version 2.2.0 부터 사용할 수 있다.
- 논리적 처리 소요시간은 O(1)입니다.
관련 명령 | BLPOP, BRPOP |
Clients for Java | Jedis, Lettuce, Redisson | Clients for C | Hiredis |
<< BLMOVE | BRPOPLPUSH | SETS Introduction >> |
---|
Email
답글이 올라오면 이메일로 알려드리겠습니다.