您当前的位置: 首页 > 慢生活 > 程序人生 网站首页程序人生
Redis Brpoplpush 命令
发布时间:2021-10-31 21:31:19编辑:雪饮阅读()
Redis Brpoplpush 命令从列表中取出最后一个元素,并插入到另外一个列表的头部
127.0.0.1:6379> flushdb
OK
127.0.0.1:6379> lpush key1 key1_ele1 key1_ele2
(integer) 2
127.0.0.1:6379> lpush key2 key2_ele1 key2-ele2
(integer) 2
127.0.0.1:6379> lrange key1 0 -1
1) "key1_ele2"
2) "key1_ele1"
127.0.0.1:6379> lrange key2 0 -1
1) "key2-ele2"
2) "key2_ele1"
127.0.0.1:6379> brpoplpush key1 key2 10
"key1_ele1"
127.0.0.1:6379> lrange key1 0 -1
1) "key1_ele2"
127.0.0.1:6379> lrange key2 0 -1
1) "key1_ele1"
2) "key2-ele2"
3) "key2_ele1"
如果列表没有元素会阻塞列表直到等待超时
127.0.0.1:6379> brpoplpush key1 key2 10
"key1_ele2"
127.0.0.1:6379> brpoplpush key1 key2 10
(nil)
(10.07s)
如果列表没有元素会阻塞列表直到发现可弹出元素为止。
127.0.0.1:6379> lpush key1 key1_ele3
(integer) 1
127.0.0.1:6379> brpoplpush key1 key2 10000
"key1_ele3"
127.0.0.1:6379> brpoplpush key1 key2 10000
然后这里卡住了,因为key1中元素是空的了,然后我在10000秒内,我另外开一个会话然后给key1中新push一个出来
127.0.0.1:6379> lpush key1 key1_ele4
(integer) 1
然后会话1这边就有响应了
127.0.0.1:6379> brpoplpush key1 key2 10000
"key1_ele4"
(13.41s)
基于以上可以总结返回值:
返回值
假如在指定时间内没有任何元素被弹出,则返回一个 nil 和等待时长。 反之,返回一个含有两个元素的列表,第一个元素是被弹出元素的值,第二个元素是等待时长。
llen用来获取一个list的key的元素长度(个数):
127.0.0.1:6379> llen key2
(integer) 6
127.0.0.1:6379> lrange key2 0 -1
1) "key1_ele4"
2) "key1_ele3"
3) "key1_ele2"
4) "key1_ele1"
5) "key2-ele2"
6) "key2_ele1"
lrange的start和stop两个索引接收都是0,则是取该key对应list的第一个元素
127.0.0.1:6379> lrange key2 0 0
1) "key1_ele4"
关键字词:Redis,Brpoplpush
上一篇:Redis Brpop 命令
下一篇:Redis Lindex 命令