教程 > Redis教程 > Redis 命令 阅读:15

Redis BRPOPLPUSH 命令

Redis BRPOPLPUSH 命令

返回 Redis列表(list)


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

可用版本

>= 2.0.0

返回值

假如在指定时间内没有任何元素被弹出,则返回一个 nil 和等待时长。 反之,返回一个含有两个元素的列表,第一个元素是被弹出元素的值,第二个元素是等待时长。

示例

# 非空列表
redis 127.0.0.1:6379> BRPOPLPUSH msg reciver 500
"hello moto"                        # 弹出元素的值
(3.38s)                             # 等待时长
redis 127.0.0.1:6379> LLEN reciver
(integer) 1
redis 127.0.0.1:6379> LRANGE reciver 0 0
1) "hello moto"

# 空列表
redis 127.0.0.1:6379> BRPOPLPUSH msg reciver 1
(nil)
(1.34s)

时间复杂度

BRPOP 命令时间复杂度: O(1)

返回 Redis列表(list)

查看笔记

扫码一下
查看教程更方便