列表List
redis的列表允许用户从序列的两端推入或者弹出元素,获取列表元素,以及执行各种常见的列表操作。
从语义上来说,列表的左端为开头,右端为结尾。
Redis常用的列表处理命令
rpush rpush key-name value #将一个或多个值推入列表的右端
lpush lpush key-name value #将一个或多个值推入列表的左端
rpop rpop key-name #移除并返回列表最右端的元素
lpop lpop key-name #移除并返回列表最左端的元素
lindex lindex key-name offset #返回列表中偏移量为offset的元素
lrange lrange key-name start end #返回列表从start偏移量到end偏移量范围内的所有元素,注意这里是闭区间
ltrim ltrim key-name start end # 对列表进行修剪,只保留start到end范围内的元素,也是闭区间。
使用案例:
从右端推入一个元素,值为‘last’,从左端推入一个元素,值为‘first’
lpush是向列表list的头部推入一个元素,rpush是向列表list的尾部推入一个元素:
使用lpop命令移除列表的头部元素:
lpop my-list-key
阻塞式的列表弹出命令以及在列表之间移动元素的命令:
blpop blpop key-name timeout #从第一个非空列表中弹出位于最左端的元素或者在timeout秒之内阻塞并等待可弹出的元素出现
brpop brpop key-name timeout #从第一个非空列表中弹出位于最右端的元素或者在timeout秒之内阻塞并等待可弹出的元素出现。
rpoplpush rpoplpush source-key dest-key #从source-key列表中弹出最右端的元素,然后推入到dest-key列表的最左端,
并向用户返回这个元 素
brpoplpush BRPOPLPUSH source-key dest-key timeout #从source-key列表中弹出最右端的元素,然后推入到dest-key列表的最左端,并向用户 返回这个元素,如果source-key为空,那么在timeout秒之内阻塞并等待可弹出的元素出现