Redis 列表 | Navicat

在最近的博客 文章 中,我们已经了解了 Redis 的六种数据类型。其中,Redis 列表(List)包含一组字符串,他们按照被添加的顺序进行排序。本文将就列表数据类型进行展开介绍,并且重点介绍一些主要的命令来管理它们。

列表性能

在 Redis 中,重要的一点是,列表(List)是通过链表来表现的。一个链表是由多个节点构成的数据结构,每个节点都包含数据域和"next"引用(指向列表中的下一个节点的指针)两部分。

这对性能是有一些重要影响的,它可以快速地向头部和尾部添加元素,但是查找列表中的元素会比较慢,因为在列表中我们没有像数组索引那样的方式来访问元素。

创建一个列表(List)

使用 Redis 的两个命令:RPUSH 和 LPUSH ,并在其后加上列表的键名,用于将数据添加到指定列表中以创建一个列表。如果键名不存在,命令将会返回一个新的列表,并将传入的参数作为列表的元素。如果键名存在但不是在这个列表类型时,将返回报错。

RPUSH 命令

RPUSH 命令用于在列表的尾部插入一个新的元素:

复制代码
RPUSH key value [value ...]

新建一个代表吉他品牌列表的键,键名为"guitars":

复制代码
RPUSH guitars "Jackson" // 1
RPUSH guitars "Fender"  // 2
RPUSH guitars "Gibson"  // 3

每当插入一个元素,Redis 会返回插入后的列表长度。在上面三个语句之后,guitars 列表应该包括下面三个元素:

复制代码
Jackson Fender Gibson

LPUSH 命令

LPUSH 命令执行的操作与 RPUSH 命令类似,只不过 LPUSH 命令是在列表的前端(头部)插入元素:

复制代码
LPUSH key value [value ...]

我们可以使用 LPUSH 命令在"guitar"列表前端插入新的值,如下所示:

复制代码
LPUSH guitars "Ibanez" //4

现在有四把吉他,以"lbanez"开头:

复制代码
Ibanez Jackson Fender Gibson

Navicat for Redis 编辑器中,列表(List)的值被称为元素。点击元素右侧的 [...] 按钮,会打开一个特定编辑器,你可以在其中输入单个列表元素:

点击"应用"按钮可添加新的列表或元素。

添加元素后,可以使用上下箭头的按钮来调整列表中元素的位置。

通过 LRANGE 命令获取列表项

LRANGE 命令根据指定的起始索引和结束索引返回列表的子集:

复制代码
LRANGE key start stop

我们可以用 0 和 -1 分别表示起始索引和结束索引来获取完整列表:

复制代码
LRANGE guitars 0 -1 
//returns Ibanez Jackson Fender Gibson

与此同时,以下命令可检索前两把吉他:

复制代码
LRANGE guitars 0 1 
//returns Ibanez Jackson

从列表(List)中移除元素

LPOP 命令移除并返回列表(List)的第一个元素,而 RPOP 命令移除并返回列表(List)的最后一个元素。如下示例:

复制代码
LPOP guitars //returns Ibanez 
RPOP guitars //returns Gibson 

在 Navicat 编辑器中,我们选中列表的任意元素,然后点击元素值下方的删除 [-] 按钮来移除该元素。

总结

本篇博客文章重点介绍了管理 Redis 的列表(List)所用到的一些主要命令,以及在 redis-cli 和 Navicat for Redis 中如何管理列表。若想尝试使用 Navicat for Redis,你可点击 此处 下载它,可享 14 天免费试用完整版功能。

相关技术文章

开始使用 Redis

Navicat for Redis 功能介绍

Redis 数据类型

如何在 Redis 中处理键值

Redis Pub/Sub 指南

相关推荐
DashVector1 分钟前
如何通过Java SDK分组检索Doc
java·数据库·面试
Olrookie35 分钟前
XXL-JOB GLUE模式动态数据源实践:Spring AOP + MyBatis 解耦多库查询
java·数据库·spring boot
苏婳66636 分钟前
【最新版】怎么下载mysqlclient并成功安装?
数据库·python·mysql
Tapdata2 小时前
《实时分析市场报告 2025》上线 | 从批处理到实时洞察,2025 年全球实时分析市场全景解读
数据库
海梨花3 小时前
【从零开始学习Redis】项目实战-黑马点评D2
java·数据库·redis·后端·缓存
代码的余温4 小时前
SQL性能优化全攻略
数据库·mysql·性能优化
手把手入门6 小时前
★CentOS:MySQL数据备份
数据库·mysql·adb
SelectDB7 小时前
5000+ 中大型企业首选的 Doris,在稳定性的提升上究竟花了多大的功夫?
大数据·数据库·apache
路多辛7 小时前
Golang database/sql 包深度解析(二):连接池实现原理
数据库·sql·golang
SimonKing7 小时前
Mybatis批量插入,形式不同性能也不同
数据库·后端·程序员