blpop
BLPOP
Redis 開発者教育の申込
|
Redis 定期点検/技術サポートRedis Technical Support |
Redis エンタープライズサーバーRedis Enterprise Server |
|---|
データが入るとリストの左から取り出します
使い方は 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 です。
指定した順にリストを確認し、データがあれば1つだけ取得して終了します。
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 |
| << RPUSHX | BLPOP | BRPOP >> |
|---|
Email
返事がかかってなれば、メールでお知らせします。
