Redis之List

时间:2022-11-30 08:05:58

一、Redis之List简介

1. List是简单的字符串列表,按照插入顺序排列。

2. 一个列表最多可存储232-1个元素(40多亿)。

二、Redis之List命令行操作

Lrange:获取列表指定区间中的元素。0表示列表第一个元素,-1表示最后一个元素,-2表示倒数第二个元素。所以获取列表所有元素命令为:lrang list_name 0 -1。

Lpush:将一个或多个值插入list头部。

Rpush:将一个或多个值插入list尾部。

若key不存在则先创建一个空列表,若key对应的值不是列表类型则报错。

Redis之List

Lpushx:将一个或多个值插入已存在的列表头部,列表不存在时操作无效。

Rpushx:将一个或多个值插入已存在的列表尾部,列表不存在时操作无效。

Redis之List

Lpop:移除并返回列表的第一个元素。

Rpop:移除并返回列表的最后一个元素。

Redis之List

Blpop:移除并获取列表的第一个元素。

Brpop:移除并获取列表的最后一个元素。

如果列表没有元素则会阻塞列表直到等待超时或发现可弹出元素为止。

Redis之List

可以发现,若是blpop或brpop命令指定的多个key中,存在key对应队列有元素则会马上弹出,并忽略不存在的key,否则会一直阻塞到超时或发现可弹出元素为止。(这里指定10秒超时)

Rpoplpush:移除列表中最后一个元素,将其插入另一个列表头部,并返回这个元素。

Brpoplpush:移除列表中最后一个元素,将其插入另一个列表头部,并返回这个元素。如果列表没有元素则会阻塞列表直到等待超时或发现可弹出元素为止。

Redis之List

Llen:返回列表长度。

Lindex:通过索引获取列表中的元素。

Lset:通过索引设置列表中元素的值。若是索引超出范围,或对一个空列表进行lset操作,则返回错误。

Redis之List

Linsert:在列表中指定元素前或后面插入元素。若指定元素不在列表中,或列表不存在时,不执行任何操作。

Redis之List

Lrem:根据参数count的值,移除列表中与参数value相等的元素。

count > 0 : 从表头开始向表尾搜索,移除与value相等的元素,数量为count。

count < 0 : 从表尾开始向表头搜索,移除与value相等的元素,数量为count的绝对值。

count = 0 : 移除表中所有与value相等的值。

Redis之List

Ltrim:对一个列表进行修剪,只保留指定区间的元素,其他元素都删除。

Redis之List