Redis学习(六):列表类型(List)

一、介绍

列表类型可以存储一个有序的字符串列表,常用的操作是向列表的两端添加元素,或者获取列表的一个片段;

与散列类型最多能容纳的字段数量相同,一个列表类型键最多能容纳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列表的左边,返回这个元素的值。

猜你喜欢

转载自blog.csdn.net/StringBuff/article/details/88090691