Redis学习笔记(四)——数据结构之List
一、介绍
Redis列表(List)是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(left)或者尾部(right),一个列表最多可以包含232-1个元素(4294967295,每个列表超过40亿个元素)。
基本命令:
blpop key [key2 ...] timeout(移除并获取列表的第一个元素,如果列表没有元素会阻塞列表知道等待超时或者发现可弹出元素为止)
brpop key [key2 ...] timeout(移除并获取列表最后一个元素,同上)
brpoplpush source destination timeout (从列表中弹出一个值,将弹出的元素插入到另外一个列表中并返回它;如果列表没有元素会阻塞列表知道等待超时或者发现可弹出元素为止)
lindex key index (通过索引获取列表中的元素)
linsert key before|after pivot value (在列表的元素前或后插入元素)
llen key (获取列表长度)
lpop key (移除并获取列表的第一个元素)
lpush key value [value2 ...] (将一个或多个值插入到列表头部)
lpushx key value [value2 ... ] (为已存在的列表将一个或多个值插入到列表头部)
lrange key start stop (获取列表指定范围内的元素)
lrem key count value (移除列表元素)
lset key index value (通过索引设置列表元素的值)
ltrim key start stop (对一个列表进行修剪,就是说让列表只保留指定区间内的元素,不在指定区间之内的元素都被删除)
rpop key (移除并获取列表最后一个元素)
rpoplpush source destination (移除列表最后一个元素,并将该元素添加到另一个列表并返回)
rpush key value [value2 ...] (向列表最后中添加一个或多个值)
rpushx key value (为已存在的列表添加值)
二、操作
1、lpush key value [value2 ...] (向列表头部中添加一个或多个值)
显示结果:
每次添加的value都是在头部添加。
2、rpush key value [value2 ...] (向列表尾部中添加一个或多个值)
显示结果:
每次添加的value都是在尾部添加。
3、lrange key start stop (获取列表指定范围内的元素)
start: 0 = 从位置0开始
stop: -1 = 集合最后一个位置
4、lpushx key value [value2 ... ] (为已存在的列表将一个或多个值插入到列表头部)
如果集合不存在,返回0
5、rpushx key value [value2 ... ] (为已存在的列表将一个或多个值插入到列表尾部)
如果集合不存在,返回0
6、blpop key [key2 ...] timeout(移除并获取列表的第一个元素,如果列表没有元素会阻塞列表知道等待超时或者发现可弹出元素为止)
如果List里面有元素,则会返回两个元素,第一个弹出的元素是所属的key,第二个元素是被弹出元素的值;
如果List里面没有元素,为空的话,会返回一个nil,命令后参数跟着的100是,如果List是空,100秒后返回nil。
7、blpop key [key2 ...] timeout (同brpop)
8、lpop key (移除并获取列表的第一个元素)
9、rpop key (移除并获取列表的最后一个元素)
10、brpoplpush source destination timeout (从列表中弹出一个值,将弹出的元素插入到另外一个列表中并返回它;如果列表没有元素会阻塞列表知道等待超时或者发现可弹出元素为止)
被弹集合有元素情况下:
被谈集合无元素情况下:
11、rpoplpush source destination (移除列表最后一个元素,并将该元素添加到另一个列表并返回)
被弹集合有元素情况下:
被弹集合无元素情况下:
12、llen key (获取列表长度)
13、lindex key index (通过索引获取列表中的元素)
14、linsert key before|after pivot value (在列表的元素前或后插入元素)
(before)在指定元素前插入元素:
(after)在指定元素后插入元素:
15、lrem key count value (移除列表元素)
可以删除指定数量的元素
16、lset key index value (通过索引设置列表元素的值)
17、ltrim key start stop (对一个列表进行修剪,就是说让列表只保留指定区间内的元素,不在指定区间之内的元素都被删除)