一、介绍
列表类型可以存储一个有序的字符串列表,常用的操作是向列表的两端添加元素,或者获取列表的一个片段;
与散列类型最多能容纳的字段数量相同,一个列表类型键最多能容纳2^32-1个元素。
二、优缺点
优点:列表类型的内部是使用(double linked list)双向链表实现的,所以像列表两端添加元素的时间复杂度为O(1),获取越接近两端的元素越快。(意味着即使列表中的数据量再大,获取前十条数据也是非常快的)
缺点:使用的链表的代价是通过索引访问元素会非常的缓慢。
三、应用场景
社交网络中的新鲜事:即使新鲜事的总数达到了几千万条,获取其中最新的100条数据也是非常快速的。
记录日志:可以保证加入新日志的速度不会受到已有日志数量的影响。
用作消息队列:点此进入
四、命令
1.像列表两端添加元素
LPUSH key value [ value... ]
RPUSH key value [value ...]
2.从列表两端弹出元素
LPOP key
RPOP key
3.获取列表中元素的个数(时间复杂度为O(1))
LLEN key
4.获取列表片段
LRANGE key start end
注:在Redis中,使用0表示从左边数第一个元素,使用-1表示从右边数第一个元素。所以LRANGE key 0 -1 表示获取列表中所有元素。
5.删除列表中指定的值
LREM key count value
(1)当count>0时,从列表左边开始删除前count个值为value的元素;
(2)当count<0时,从列表右边开始删除前|count|个值为value的元素;
(3)当count=0时,删除列表中所有值为value的元素。
6.获得/设置指定索引出的元素值
LINDEX key value
LSET key index value
7.保留指定范围的列表片段(删除指定索引范围之外的所有元素)
LTRIM key start end
8.插入元素
LINSERT key BEFORE|AFTER pivot value
在列表中从左到右查找出值为pivot的元素,然后根据before或者after决定插入到该元素的前边还是后边,返回插入后列表中元素的个数。
9.将元素从一个列表转到另一个列表
PPOPLPUSH source destination
从source列表的右边弹出元素并将该元素LPUSH到destination列表的左边,返回这个元素的值。