列表类型命令

向列表两端增加元素

lpush key val val1 ...

向列表左端增加元素

rpush key val val1 ...

向列表右端增加元素

两个操作的返回值都是增加元素后列表的长度

从列表两端弹出元素

lpop key

从左端弹出元素

rpop key

从右端弹出元素

获取列表中元素的个数

llen key

返回值为列表中元素的个数,其时间复杂度为O(1),因为其读取的是现成的值

获取列表片段

lrange key start stop

其返回的数据区间为[start,stop] (包含两端元素),Redis的起始索引为0
其也支持负索引,-1表示最右边第一个元素,-2表示最右边第二个元素,以此类推。

删除列表中指定的值

lrem key count val

删除前count个值为val的元素,返回值为删除的个数

count范围

结果

​>0​

从左向右删除前count个元素

​<0​

从右向左删除前count个元素

​=0​

删除所有值为val的数据

获得指定索引的元素值

lindex key index

返回值为所查元素,当index为负数的时候表示从右边开始(最右边的元素的索引为-1)

设置指定索引的元素值

lset key index val

只保留列表指定片段

ltrim key start end

可以删除除了指定索引之外的所有元素。

向列表中插入元素

linsert key before|after pivot val

此命令会先找到pivot元素,然后第二个参数的不同,插入到此元素的前面或后面

将元素从一个列表转到另一个列表

rpoplpush source destination

此命令会先从source的右边弹出一个元素,然后插入到destination的左边,并且返回这个元素的值,当source和destination为同一个列表的时候很简单的就变成了一个循环队列。