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
답글이 올라오면 이메일로 알려드리겠습니다.
