列表类型:可以存储一个有序的字串列表,常用的操作是向列表的两端添加元素,或者会的列表的某个片段。
列表类型的内部都是使用双向链表实现的,所以向列表两端添加元素的时候时间复杂度为0(1),获取 越接近两端的元素速度越快。这意味着即使是一个有几千万个元素的列表,获取头部或尾部的10条记录也是极快的。
不过使用链表的代价是通过索引访问元素比较慢。
命令
1 向列表两端增加元素
LPUSH key value[value...] 从左边加
RPUSH key value[value...] 从右边加
2 从列表两端弹出元素
LPOP key 左边弹出元素,并且列表把该元素移除
RPOP key 右边弹出元素,并且列表把该元素移除
3 获取列表中元素的个数
LLEN key
4 获取列表片段
LRANGE key start stop 该命令显示元素,但不会删除元素,元素是从左向右显示
LANGE命令也支持负数索引,表示从右边开始计算序数,如“-1”表示最右边地一个元素,“-2”右边第二个元素。以此类推。
注意:如果是start的索引位置比stop的索引位置靠后,则返回空列表。stop大于实际的索引范围,则返回到最右边的元素。
5 删除列表中指定的值
LREM key count value LREM命令会删除列表中前count个值为values的元素,返回值是实际删除的元素个数。根据count值的不同,LREM的命令执行也有差异
当count 》0时 LREM命令会从列表左边开始删除前count个值为value的元素
当count《 0时 LREM命令会从列表右边开始删除前count个值为value的元素
当count = 0时 LREM命令会删除所有值为value的元素
删除右边第一个2
6 获得/设置指定索引的元素值
LINDEX key index
LSET key index value
7 只保留列表指定片段
LTRIM key start end 删除指定范围内的其他元素
8 向列表插入元素
LINSERT key BEFORE|AFTER pivot value 首先从列表左到右找值pivot的元素,然后根据第二个参数命令插入值
9 将元素从一个列表转到另一个表
RPOPLPUSH source destination