Redis的列表操作命令
qingheluo2019-08-13清河洛731
列表是简单的字符串列表,按照插入顺序排序。可以添加一个元素到列表的头部(左边)或者尾部(右边)。每个list可以存储2^32-1个元素(4294967295)设置/插入命令:lpush key value [value ...] 以栈结构(后进先出)将一个或多个值value插入到key
key不存在将创建一个新的空列表并执行lpush操作
返回执行lpush命令后key的长度
lpushx key value 当且仅当key存在时将value插入到列表key的表头,key不存在时不进行任何操作
返回执行lpushx命令之后key的长度
rpush ke...
列表是简单的字符串列表,按照插入顺序排序。可以添加一个元素到列表的头部(左边)或者尾部(右边)。每个list可以存储2^32-1个元素(4294967295)
设置/插入命令:
lpush key value [value ...]
以栈结构(后进先出)将一个或多个值value插入到key key不存在将创建一个新的空列表并执行lpush操作 返回执行lpush命令后key的长度
lpushx key value
当且仅当key存在时将value插入到列表key的表头,key不存在时不进行任何操作 返回执行lpushx命令之后key的长度
rpush key value [value ...]
以队列结构(先进先出)将一个或多个值value插入到key key不存在将创建一个新的空列表并执行rpush操作 返回执行lpush命令后key的长度
rpushx key value
当且仅当key存在时将value插入到列表key的表尾,key不存在时不进行任何操作 返回执行lpushx命令之后key的长度
lset key index value
将key下标为index的元素的值设置为value, 操作成功返回OK,当index超出范围或key为一个空列表(key不存在)返回一个错误
linsert key before|after pivot value:
将value值插入到key当中的pivot值之前或之后 pivot不存在或key不存在(key被视为空列表)时不执行任何操作 命令执行成功,返回插入操作完成之后列表的长度 pivot不存在返回-1;key不存在或为空列表返回0
移除命令:
lpop key:弹出(移除)并返回列表key的头(第一个)元素,key不存在时返回nil
blpop key [key ...] timeout
阻塞的弹出给定的若干个key中第一个存在且不为空的列表的头部元素,是lpop命令的阻塞版本 如果给定的key都不存在或为空列表,那么将阻塞连接,直到超时或有另一个客户端对给定的任意一个key执行lpush或rpush命令为止。 timeout是一个以秒为单位的数字。设为0表示阻塞时间无限期延长 如果所有列表都不存在或为空,返回一个nil。否则,返回一个含有两个元素的列表,第一个元素是被弹出元素所属的key,第二个元素是被弹出元素的值
rpop key:弹出(移除)并返回列表key的尾(最后一个)元素,key不存在时返回nil
brpop key [key ...] timeout
作用和blpop相似,brpop命令是弹出若干个key中第一个存在且不为空的列表的尾部(最后一个)元素,是rpop命令的阻塞版本,用法参考blpop
lrem key count value
根据count的值,移除列表中与value值相等的元素 count > 0 : 从前向后搜索,移除与value相等的count个元素 count < 0 : 从后向前搜索,移除与value相等的count的绝对值个元素 count = 0 : 移除表中所有与value相等的元素 返回被移除元素的数量 key不存在(key被视为空列表)返回0
ltrim key start stop:
对一个列表进行修剪(trim),只保留指定区间内的元素 如果start比列表的最大下标还要大,那么key被修剪为一个空列表 如果stop最大下标还要大,将stop的值设置为最大下标 命令执行成功时返回OK
获取及其他命令:
lrange key start stop
返回key中指定下标start到stop区间的元素(包含start和stop,可以为负数) 如果start比列表的最大下标还要大,那么返回一个空列表 如果stop最大下标还要大,将stop的值设置为最大下标
lindex key index:返回key中下标为index(可以为负数)的元素
llen key:返回key的长度。key不存在(key被视为空列表)返回0
rpoplpush source destination
命令rpoplpush在一个原子时间内,执行以下两个动作:
命令rpoplpush在一个原子时间内,执行以下两个动作: 1、将列表source中的最后一个元素(尾元素)弹出,并返回给客户端 2、将source弹出的元素插入到列表destination,作为destination列表的的头元素 返回被弹出的元素,如果source不存在返回nil并且不执行第二步操作
brpoplpush source destination timeout
命令rpoplpush的阻塞版本,当source不为空时,表现和rpoplpush一样。 source为空将阻塞连接,直到超时或有另一个客户端对source执行lpush或rpush命令为止 timeout是一个以秒为单位的数字。设为0表示阻塞时间无限期延长 在指定超时时间内没有任何元素被弹出,则返回一个nil和等待时长,反之,返回一个含有两个元素的列表,第一个元素是被弹出元素的值,第二个元素是等待时长