目录
[运行 Redis 服务器和 Redis Insight](#运行 Redis 服务器和 Redis Insight)
[仅限 Redis 服务器](#仅限 Redis 服务器)
[Redis Server + Redis Insight](#Redis Server + Redis Insight)
[Redis Insight](#Redis Insight)
[Redis CLI](#Redis CLI)
[连接到 Redis CLI](#连接到 Redis CLI)
[断开与 Redis CLI 的连接](#断开与 Redis CLI 的连接)

如果您喜欢此文章,请收藏、点赞、评论,谢谢,祝您快乐每一天。
在本教程中,您将学习如何在本地运行 Redis 以及 Redis Insight 来管理其数据,以及如何执行简单的 CRUD 操作。
此外,我们还将了解如何使用 Redis CLI 执行相同的操作,以及如何从容器内部连接到它。
让我们把手伸进火里吧!
运行 Redis 服务器和 Redis Insight
在本地启动 Redis 服务器非常简单,而使用 Redis Insight 运行它则更加容易!我们将使用 Docker 来运行它们,虽然我们同时运行这两个应用程序,但我也会提供仅运行服务器的命令:
仅限 Redis 服务器
docker run -d --name redis-stack-server -p 6379:6379 redis/redis-stack-server:latest
Redis Server + Redis Insight
docker run -d --name redis-stack -p 6379:6379 -p 8001:8001 redis/redis-stack:latest
我们将看到镜像正在下载,下载完成后,我们可以通过docker ps在终端执行命令来查看容器是否正在运行,并且它是否暴露了端口 6379 和 8001(定义如下)-p 6739:6379 -p 8001:8001:

Redis Insight
6379 是我们服务器的端口,8001 是 Redis Insight 的端口。我们可以通过访问以下地址连接到它:localhost:8001
如果我们访问它,应该会看到类似这样的内容:

右上角显示数据库的一些统计信息。左上角显示数据库详细信息,左侧中间显示键值列表,右侧中间显示这些键值的详细信息。
需要注意的是,Redis 在概念上是基于键值数据库范式的。每条数据都与一个键相关联,无论是直接关联还是间接关联。
添加新的键值
要添加新的键值,我们需要点击按钮+key。
我们的第一个密钥类型为hash。密钥的 TTL(生存时间)为空,这意味着它永远不会过期。
键名将是,RaphaelDeLio然后我们将添加一些与该键关联的值:

我们可以点击它Add Key,然后在密钥列表中看到我们的密钥及其关联的字段:

您可以点击字段旁边的铅笔或垃圾桶图标来编辑或删除任何字段,甚至删除键本身。

Redis CLI
连接到 Redis CLI
为了向 Redis 发送命令,我们需要连接到 Redis CLI。Redis CLI 已安装在容器内,我们可以通过在终端运行以下命令来访问它:
docker exec -it redis-stack redis-cli
添加新密钥
要添加新键,我们将使用该HSET命令。此命令专门用于设置类型为 `<key>` 的键hash,每种类型都有不同的前缀,例如 ` <key>`LSET用于 ` <key>` list,SET`<key>` 用于`<key> string`,以及其他我们将在本文后面看到的键。
为了添加与我们使用 Redis Insight 添加的相同的对象,我们将运行以下命令:
HSET RaphaelDeLio name "Raphael" lastName "De Lio" age 27 job "Software Developer"
作为响应,Redis 应该返回键中设置的字段数量:
(integer) 4
找回密钥
此外,还有用于获取每种类型密钥的命令,它们遵循我们之前看到的相同模式。
我们将介绍两种获取哈希键的方法,其中一种是获取哈希表的所有字段。我们可以通过运行以下命令来实现:
HGETALL RaphaelDeLio
我们应该会看到这样的回应:
-
"name"
-
"Raphael"
-
"lastName"
-
"De Lio"
-
"age"
-
"27"
-
"job"
-
"Software Developer"
第二种方法是通过运行以下命令来检索特定字段:
HGET RaphaelDeLio job
返回结果:
"Software Developer"
编辑字段或添加新字段
编辑字段或添加新字段都使用同一个 set 命令HSET,我们可以运行以下命令:
HSET RaphaelDeLio newKey "This is a new Key"
HSET RaphaelDeLio job "I'm editing an existing key!"
你可以通过运行我们之前看到的 GET 命令来测试它们。
删除字段或键
要删除哈希字段,只需运行HDEL如下命令:
HDEL RaphaelDeLio job
要删除密钥,请运行:
DEL RaphaelDeLio
断开与 Redis CLI 的连接
要断开与 Redis CLI 的连接,只需按ctrl + c
其他类型呢?
哈希
Redis 哈希是字符串字段和字符串值之间的映射,因此它们是表示对象(例如,具有姓名、姓氏、年龄等多个字段的用户)的完美数据类型。
每个哈希最多可以存储 2³² --- 1 个字段值对(超过 40 亿)。
字符串
字符串是 Redis 中最基本的值类型。Redis 字符串是二进制安全的,这意味着 Redis 字符串可以包含任何类型的数据,例如 JPEG 图像或序列化的 Ruby 对象。
字符串值的最大长度为 512 兆字节。

字符串命令:
- SET: 添加或编辑密钥
- GET: 用于检索密钥
- **DEL:**删除键
列表
Redis 列表本质上就是按插入顺序排序的字符串列表。可以通过将新元素添加到列表的头部(左侧)或尾部(右侧)来向 Redis 列表添加元素。

列表示例

向列表中添加新元素的示例
Sets
Redis Set 是一个无序的字符串集合。可以在 O(1) 的时间复杂度内添加、删除和检查成员是否存在。
Redis Set 的一个优点是不允许重复成员。多次添加同一个元素只会导致集合中只有一个该元素的副本。实际上,这意味着添加成员时不需要先检查是否存在再添加。
按回车键或点击查看完整尺寸的图片

创建一个包含三个相同元素的集合

创建了一个集合,其中丢弃了三个相同元素中的两个。
命令:
- SADD:向集合中添加一个成员
- SREM:从集合中移除一个成员
- SMEMBERS:列出集合中的所有成员
有序集
Redis Sorted Set 与 Redis Set 类似,都是不重复的字符串集合。不同之处在于,Sorted Set 中的每个元素都关联一个分数,该分数用于保持 Sorted Set 的顺序,从最小的分数到最大的分数排列。虽然元素是唯一的,但分数可以重复。

按分数排序的集合示例
命令:
- **ZADD:**添加新成员
- **ZREM:**移除现有成员
- **ZRANGE:**按范围列出成员
流
Redis 流是一种数据结构,其作用类似于仅追加日志。流非常适合按事件发生的顺序记录事件。
对于流(Streams),我们需要提供一个入口键,它可以是时间戳或序列号。如果我们将其留空*,Redis 会将数据库时间戳分配给它。

添加流密钥

空气质量数据流示例(按时间段划分)
命令:
- **XADD:**向流中添加新条目
- **XRANGE:**列出所有与指定 ID 范围匹配的条目
- **XDEL:**从流中删除条目
JSON
RedisJSON 是 JSON 模块的一部分,它允许您将 JSON 对象作为键的值添加。

JSON 值示例
命令:
- JSON.SET:在现有 JSON 中添加或替换新的 JSON 或字段
- JSON.DEL:删除 JSON 或 JSON 中的字段
- JSON.GET:用于检索 JSON
结论
在本教程中,您学习了如何在本地启动 Redis 服务器和 Redis Insight。您还了解了 Redis 支持的不同类型键,以及如何使用 Redis Insight 和 Redis CLI 执行简单的 CRUD 操作。
如果您喜欢此文章,请收藏、点赞、评论,谢谢,祝您快乐每一天。