如何在 Redis 中使用和处理列表

151 阅读3分钟

Redis为我们提供了一个列表数据结构来存储项目的集合。它与大多数编程语言中的典型数组非常相似。一旦你向列表添加一个元素,Redis将从索引0开始分配一个索引值。

让我们学习如何在 Redis 中使用和处理列表。

要求

本教程假定你已经在系统中安装并配置了最新版本的 Redis 服务器。

我们建议使用 Redis CLI 来获得最大的兼容性和类似的输出。

Redis创建列表

我们使用 RPUSH, 和 LPUSH 命令在 Redis 中创建一个列表。Redis 使用头部和尾部的概念向列表中添加元素。

RPUSH在列表的右边添加一个元素,而LPUSH命令在左边添加一个元素。

命令的语法如下所示

RPUSH key value1 value2 value3…valueN
LPUSH key value1 value2 value3…valueN

例如,我们创建一个持有数据库的列表,如图所示。

127.0.0.1:6379> RPUSH databases MySQL PostgreSQL Cassandra
(integer) 3

上面的命令将创建一个名为databases的新列表并添加三个元素。它返回一个整数值,表示有多少元素被添加到列表中。

同样的情况也适用于LPUSH命令。

Redis 获取列表项

要获取 Redis 中的元素,使用 LRANGE 命令。这个命令接收列表的名称和你想访问的元素的索引范围。

语法如下所示。

LRANGE key start_offset stop_offset

例如,要获得从索引0到索引3的元素,我们可以这样做。

127.0.0.1:6379> LRANGE databases 0 3
1) "MySQL"
2) "PostgreSQL"
3) "Cassandra"

该命令应该返回指定范围内的元素的值。

注意:在Redis中,索引从0开始。因此,列表中的第一个元素是在索引0。

如果你想获得一个列表中的所有元素,我们可以使用负数索引。例如,如果你访问从索引0到-1的元素,Redis将返回列表中的所有元素。

一个例子如图所示。

127.0.0.1:6379> LRANGE databases 0 -1
1) "MySQL"
2) "PostgreSQL"
3) "Cassandra"

你也可以使用LINDEX命令访问特定索引的项目。一个例子如图所示。

127.0.0.1:6379> LINDEX databases 0
"MySQL"

上面的命令返回指定列表中存储在索引0处的项目。

Redis 获取列表中的元素数

要获得一个列表中的元素总数,我们可以使用LLEN命令。语法如下所示。

LLEN key

一个命令使用的例子如下所示。

127.0.0.1:6379> LLEN databases
(integer) 3

该命令应返回一个整数,即列表中的元素数。

Redis删除列表元素

我们可以使用 LPOP, 和 RPOP 命令来从列表中删除一个项目。这些命令分别删除列表左边和右边的最后一个元素。

例子

127.0.0.1:6379> LPOP databases
"MySQL"

在这种情况下,该命令删除并返回列表左边的最后一个元素。简单地说,它删除了列表中的第一个元素。

要删除列表中的最后一个元素,我们可以使用RPOP命令。

127.0.0.1:6379> RPOP databases
"Cassandra"

你还可以指定你想删除的列表右边或左边的多少个元素。例如,要从列表的左边删除三个项目,请运行命令。

127.0.0.1:6379> LPOP databases 3
1) "Cassandra"
2) "MySQL"
3) "PostgreSQL"

该命令删除并返回所删除的元素。

Redis 删除整个列表

如果你想清除整个列表,你可以使用 DEL 命令,后面跟着列表的名字。

例子

127.0.0.1:6379> DEL databases
(integer) 1

如果指定的列表存在于数据库中,Redis将删除它并返回整数1。

总结

在这篇文章中,我们介绍了 Redis 中著名且有价值的数据类型之一。使用列表,你可以创建集合类型而不产生大量的内存使用。

谢谢你的阅读!!