如何在本地 Docker 容器中运行 Redis,并使用 Redis Insight 和 Redis CLI 进行管理

发布时间:2026/11/6 6:32:55
如何在本地 Docker 容器中运行 Redis,并使用 Redis Insight 和 Redis CLI 进行管理

目录

运行 Redis 服务器和 Redis Insight

仅限 Redis 服务器

Redis Server + Redis Insight

Redis Insight

添加新的键值

Redis CLI

连接到 Redis CLI

添加新密钥

找回密钥

编辑字段或添加新字段

删除字段或键

断开与 Redis CLI 的连接

其他类型呢?

哈希

字符串

列表

Sets

有序集

流

JSON

结论


如果您喜欢此文章,请收藏、点赞、评论,谢谢,祝您快乐每一天。

在本教程中,您将学习如何在本地运行 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

我们应该会看到这样的回应:

1) "name"
2) "Raphael"
3) "lastName"
4) "De Lio"
5) "age"
6) "27"
7) "job"
8) "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 操作。

如果您喜欢此文章,请收藏、点赞、评论,谢谢,祝您快乐每一天。