重学redis系列之list

151 阅读2分钟

list作为redis支持的物种数据类型之一,有许多有用的方法,连接上redis以后我们可以使用help @list查看相关的命令。 在这里插入图片描述 redis关于list的命令主要分为两大类以L开头和以R开头的命令,部分L开头的命令L代表的是left(部分是标识是list的命令),R代表的right,下面来看看redis关于list的一些常用命令: LPUSH key value [value ...] summary: Prepend one or multiple values to a list 在这里插入图片描述 LRANGE key start stop summary: Get a range of elements from a list 可以通过lrange查看一个list中的元素。 查看看k1中所有元素: 在这里插入图片描述

对应的可以通过lpop从左侧取出一个元素:

在这里插入图片描述

在这里插入图片描述

我们发现元素弹出的顺序和push的顺序刚好是相反的,这其实是一个我们常用的数据结构--栈(先进后出)。 相应的有LPUSH、LPOP也有对应的RPUSH、RPOP,用法一样,同向命令可以模拟栈的效果。相应的,反向命令可以模拟队列(先进先出)的效果。 常用的命令还有: 获取list中数据个数 LLEN key
summary: Get the length of a list 通过索引获取list中指定的位置的元素
LINDEX key index 。
summary: Get an element from a list by its index

在这里插入图片描述

设置一个list指定索引位置的元素 LSET key index value 。 summary: Set the value of an element in a list by its index

在这里插入图片描述

截取一个list中指定索引位置的元素 LTRIM key start stop。
summary: Trim a list to the specified range在这里插入图片描述

在某一元素的前或后插入指定元素 LINSERT key BEFORE|AFTER pivot value。
summary: Insert an element before or after another element in a list。 在这里插入图片描述

如果指定的元素不存在则插入失败。

在这里插入图片描述

还有3个以B打头的命令,可以做到一个类似阻塞队列的效果。 等待一段时间或一定等待直到满足条件从list中弹出一个元素

BLPOP key [key ...] timeout summary: Remove and get the first element in a list, or block until one is available

在这里插入图片描述

因为k2不存在,所以我们看到当前的客户端阻塞了, 新开一个客户端: 在这里插入图片描述

然后我们看到第一个客户端已经弹出对应元素了。

在这里插入图片描述

list的相关命令基本也就这些了,到此为止。