Redis BLPOP 命令是列表弹出元素的阻塞模式,当给定列表内没有任何元素可供弹出的时候,连接将被 BLPOP 命令阻塞,直到等待超时或发现可弹出元素为止。
当给定多个 key 时,按 key 的先后顺序依次检查各个列表,弹出第一个非空列表的头元素。
BLPOP 命令可用版本:>= 2.0.0
Redis BLPOP 命令的基本语法如下:
BLPOP key [key ...] timeout
如果列表为空,返回一个 nil 。否则,返回一个含有两个元素的列表,第一个元素是被弹出元素所属的 key,第二个元素是被弹出元素的值。
127.0.0.1:6379> LPUSH website www.baidu.com www.cdsy.xyz (integer) 2 127.0.0.1:6379> BLPOP website 10 #弹出列表中第一个元素,并返回存储它的key 1) "website" 2) "www.cdsy.xyz" 127.0.0.1:6379> BLPOP website 10 1) "website" 2) "www.baidu.com" 127.0.0.1:6379> BLPOP website 10 #设置超时时间,否则将一直阻塞 (nil) (10.00s)