Redis中List类型常用的命令

list类型常用命令
列表
一个列表项可以包含一个或者多个数量的项,每个项可以按照它们被推入到列表的位置来排列。
每个列表项所处的位置都决定了这个项的索引值,索引以0位开始,从列表的左端到右端依次递增,位于列表最左端的项的索引为0,而位于列表最右端的项的索引为N-1,其中N为列表的长度。
列表包含的项可以出现重复,它们不必是唯一的。
推入和弹出的操作
LPUSH key value [value ...]
    将一个或者是多个值依次推入到列表的左端,命名返回新值被推入后,列表目前所包含的项数量。
    复杂度为O(N),其中N为被推入值的数量,如果只有一个值,那么这个命令的复杂度为O(1)。
RPUSH key value [value ...]
    将一个或以上数量的值依次推入到列表的右端,命令返回新值被推入之后,列表目前包含的项数量。
    复杂度为O(N) ,其中 N 为被推入的数量,如果只推入一个值,那么命令的复杂度 O(1) 。
LPOP key
    移除并返回列表最左端的项,复杂度为O(1)。
RPOP key
    移除并返回列表最右端的项,复杂度是O(1)。
长度、索引和范围操作
LLEN key
    返回列表键 key 长度,也即是,返回列表包含的列表项数量。因为Redis 会记录每个列表的长度,所以这个命令无须遍历列表,它的复杂为 O(1)。
LINDEX key index
    返回列表键 key 中,指定索引 index 上的列表项。index 索引可以是正数或者负数。复杂度为O(N) ,N 列表的长度。 
LRANGE key start stop
    返回列表键key 中,从索引start 至索引stop 范围内的所有列表。两个索引参数都可以是正数或负数。复杂度为 O(N)  N 为被返回的列表项数量。
插入和删除操作
LSET key index value
    将列表键key 索引 index 上的列表项设置为value ,设置成功时命令返回 OK 。如果 index 参数超过了列表的索引范围,那么命令返回一个错误。针对表头和表尾节点进行处理时(index0 或者 -1),命令的复杂度为 O(1) ;其他情况下,命令的复杂度为 O(N) ,N 为列表的长度。
LINSERT key BEFORE|AFTER pivot value
    根据命令调用时传递的是 BEFORE 选项还是 AFTER 选项,将值 value 插入到指定列表项 pivot 的之前或者之后。当 pivot 不存在于列表 key 时,不执行任何操作。返回 -1  pivot 不存在;返回 0 表示键key 不存在;插入成功时则返回列表当前的长度。复杂度为O(N) ,N 为列表长度。
LREM key count value
    根据参数 count 的值,移除列表中与参数 value 相等的列表项:
         •如果 count > 0 ,那么从表头开始向表尾搜索,移除最多count 个值为value 的列表项。
         •如果 count < 0 ,那么从表尾开始向表头搜索,移除最多 abs(count) 个值为value 的列表项。
         •如果 count = 0 ,那么移除列表中所有值为     value 的列表项。
    命令返回被移除列表项的数量。命令的复杂度为 O(N) ,N 为列表的长度。
LTRIM key start stop
    对一个列表进行修剪(trim),让列表只保留指定索引范围内的列表项,而将不在范围内的其他列表项全部删除。两个索引都可以是正数或者负数。命令执行成功时返回 OK ,复杂度为 O(N) ,N为被移除列表项的数量。
阻塞式弹出操作
BLPOP key [key ...] timeout
    LPOP 命令的阻塞版本;命令会以从左到右的顺序,访问给定的各个列表,并弹出首个非空列表最左端的项;如果所有给定列表都为空,那么客户端将被阻塞,直到等待超时,或者有可弹出的项出现为止;设置参数为 0 表示永远阻塞。
    复杂度为O(N),N为输入列表的数量。
BRPOP key [key ...] timeout
    RPOP 命令的阻塞版本:命令会以从左到右的顺序,访问给定的各个列表,并弹出首个非空列表最右端的项;如果所有给定列表都为空,那么客户端将被阻塞,直到等待超时,或者有可弹出的项出现为止;设置 timeout 参数为 0 表示永远阻塞。
    复杂度为O(N),N为输入列表的数量。

猜你喜欢

转载自blog.csdn.net/qq_25484147/article/details/80724314