brpoplpush
BRPOPLPUSH
Redis 開発者教育の申込
|
Redis 定期点検/技術サポートRedis Technical Support |
Redis エンタープライズサーバーRedis Enterprise Server |
|---|
データが入るとリストの右からデータを取り出し、左に入れます。
使い方は brpoplpush src_key dest_key timeout です。
結果は rpop + lpush と同じです。このコマンドはアトミック(atomic)に動作します。
リストにデータが既にある場合は 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
返事がかかってなれば、メールでお知らせします。
