Redis之List

Posted 编程人,在天涯

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Redis之List相关的知识,希望对你有一定的参考价值。

一、RedisList简介

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

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

 

二、RedisList命令行操作

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

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

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

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

 

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

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

 

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

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

 

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

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

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

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

 

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

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

 

Llen:返回列表长度。

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

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

 

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

 

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

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

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

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

 

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

 

以上是关于Redis之List的主要内容,如果未能解决你的问题,请参考以下文章

#yyds干货盘点#动力节点王鹤Springboot教程笔记Redis

redis中list和hash的基本命令和使用场景

Redis之集群环境搭建

Redis五大数据类型之Zset

Redis之集群环境搭建

Redis五大数据类型之Hash