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 中著名且有价值的数据类型之一。使用列表,你可以创建集合类型而不产生大量的内存使用。
谢谢你的阅读!!