Redis BRPOPLPUSH 命令从列表中取出最后一个元素,并插入到另外一个列表的头部; 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。
BRPOPLPUSH 是 RPOPLPUSH
的阻塞版本,当给定列表 source
不为空时, BRPOPLPUSH
的表现和 RPOPLPUSH 一样。
超时参数 timeout
接受一个以秒为单位的数字作为值。超时参数设为 0
表示阻塞时间可以无限期延长(block indefinitely) 。
从 Redis 6.2.0 起,建议使用 BLMOVE 替代 BRPOPLPUSH 。 查看 RPOPLPUSH 了解更多。
*语法
redis BRPOPLPUSH 命令基本语法如下:
redis 127.0.0.1:6379> BRPOPLPUSH LIST1 ANOTHER_LIST TIMEOUT
非空列表: ``` redis> BRPOPLPUSH msg reciver 500 "hello moto" # 弹出元素的值 (3.38s) # 等待时长
redis> LLEN reciver (integer) 1
redis> LRANGE reciver 0 0 1) "hello moto" ```
空列表:
redis> BRPOPLPUSH msg reciver 1
(nil)
(1.34s)
*返回值
多行字符串: 要从 source
压入 destination
的元素。超时返回空。
*历史
>= 6.0
:timeout
从整型变为 double 类型。
*模式:安全队列
参考 RPOPLPUSH
命令的《安全队列》一节。
*模式:循环列表
参考 RPOPLPUSH 命令的《循环列表》一节。