rpoplpush
RPOPLPUSH
Redis 開発者教育の申込
|
Redis 定期点検/技術サポートRedis Technical Support |
Redis エンタープライズサーバーRedis Enterprise Server |
|---|
リストの右端からデータを取り出して左端に入れる
使い方は rpoplpush src_key dest_key です。
結果は rpop + lpush と同じですが、このコマンドは原子的(atomic)に動作します。
Example: Reliable queue
| コマンド> | lpush src_key msg_1 msg_2 msg_3 |
| 結果> | 3 |
| コマンド> | lpush dest_key msg_A msg_B msg_C |
| 結果> | 3 |
| コマンド> | rpoplpush src_key dest_key |
| 結果> | msg_1 |
| コマンド> | lrange src_key 0 -1 |
| 結果> | 0) msg_3 1) msg_2 |
| コマンド> | lrange dest_key 0 -1 |
| 結果> | 0) msg_1 1) msg_C 2) msg_B 3) msg_A |
Circular list
src_key と dest_key を同じ key に指定できます。
こうすると環状リスト(circular list)になります。
Example: Circular list
| コマンド> | lpush key msg_1 msg_2 msg_3 |
| 結果> | 3 |
| コマンド> | lrange key 0 -1 |
| 結果> | 0) msg_3 1) msg_2 2) msg_1 |
| コマンド> | rpoplpush key key |
| 結果> | msg_1 |
| コマンド> | lrange key 0 -1 |
| 結果> | 0) msg_1 1) msg_3 2) msg_2 |
構文
RPOPLPUSH source destination
- version 1.2.0 から使用できます。
- 時間計算量は O(1) です。
| 関連コマンド | RPOP, LPUSH |
| Clients for Java | Jedis, Lettuce, Redisson | Clients for C | Hiredis |
| << LMOVE | RPOPLPUSH | LPUSHX >> |
|---|
Email
返事がかかってなれば、メールでお知らせします。
