引言

Redis 是一个开源的、内存中的键值数据存储。 无论是在本地安装 Redis 还是使用远程实例,都需要连接到它以执行大多数操作。 在本教程中,我们将讨论如何从命令行连接到 Redis,如何验证和测试连接,以及如何关闭 Redis 连接。

如何使用本指南

本指南是作为包含自包含示例的备忘单编写的。 我们鼓励您跳转到任何与您正在尝试完成的任务相关的部分。

本指南中显示的命令是在运行 Redis 4.0.9版本的 Ubuntu 18.04服务器上测试的。 要建立一个类似的环境,你可以按照我们关于如何在 Ubuntu 18.04上安装和保护 Redis 的指南的第一步。 我们将通过使用 Redis-cli (Redis 命令行界面)运行这些命令来演示它们的行为。 请注意,如果您使用的是不同的 Redis 接口ーー例如 Redli ーー某些命令的确切输出可能会有所不同。

或者,您可以提供一个托管 Redis 数据库实例来测试这些命令,但是请注意,根据您的数据库提供程序所允许的控制级别,本指南中的某些命令可能不能像描述的那样工作。 要提供一个数字数据库管理数据库,请遵循我们的管理数据库产品文档。 然后,必须安装 Redli 或设置 TLS 通道,以便通过 TLS 连接到托管数据库。

连接到 Redis

如果本地安装了 Redis-server,可以使用 Redis-cli 命令连接到 Redis 实例:

  • redis-cli

这将带您进入 Redis-cli 的交互模式,它将向您提供一个 REPL"读取-求值-输出"循环,您可以在其中运行 Redis 的内置命令并接收回复。

在交互模式下,命令行提示符将根据连接进行更改。 在这个示例和本指南中的其他示例中,提示符指示到本地承载的 Redis 实例(127.0.0.1)的连接,该连接通过 Redis 的缺省端口(6379)访问:

在交互模式下运行 Redis 命令的替代方法是将它们作为 Redis-cli 命令的参数运行,如下所示:

  • redis-cli redis_command

如果希望连接到远程 Redis 数据存储,可以分别使用 -h 和 -p 标志指定其主机和端口号。 此外,如果您已经将 Redis 数据库配置为需要密码,则可以包含后跟密码的-a 标志,以便进行身份验证:

  • redis-cli -h host -p port_number -a password

如果您已经设置了 Redis 密码,那么客户机将能够连接到 Redis,即使它们的 Redis-cli 命令中没有包含-a 标志。 但是,在进行身份验证之前,它们不能添加、更改或查询数据。 要在连接之后进行身份验证,请使用 auth 命令和密码:

  • auth password

如果传递给 auth 的密码有效,则该命令将返回 OK。 否则,它将返回一个错误。

如果您使用的是托管 Redis 数据库,那么您的云提供商可能会给您一个以 Redis: / / 或 rediss: / / 开头的 URI,您可以使用它来访问您的数据存储。 如果连接字符串以 redis: / / 开头,则可以将其作为参数包含到 redis-cli 以连接。

但是,如果您有一个以 rediss: / / 开头的连接字符串,这意味着您的托管数据库需要通过 tls / ssl 进行连接。 Redis-cli 不支持 TLS 连接,因此您需要使用支持 rediss 协议的其他工具来连接 URI。 对于 DigitalOcean 托管数据库,它需要通过 TLS 建立连接,我们建议使用 redbli 来访问 Redis 实例。

使用以下语法与 redbli 连接到数据库。 请注意,这个示例包括 -- TLS 选项,它指定连接应该通过 TLS 建立,以及-u 标志,它声明下面的参数将是一个连接 URI:

  • redli --tls -u rediss://connection_URI

如果您尝试连接到一个不可用的实例,redis-cli 将进入断开连接模式。 提示符将反映以下内容:

当命令处于断开连接状态时,Redis 将尝试在每次运行命令时重新建立连接。

测试连接

Ping 命令对于测试到数据库的连接是否处于活动状态非常有用。 注意,这是一个特定于 redis 的命令,不同于 ping 网络实用程序。 然而,这两个机器有一个相似的功能,它们都用于检查两台机器之间的连接。

如果连接已启动且没有包含任何参数,ping 命令将返回 PONG:

  • ping
Output
PONG

如果你给 ping 命令提供一个参数,如果连接成功,它会返回参数而不是 PONG:

  • ping "hello Redis!"
Output
"hello Redis!"

如果你在断开连接模式下运行 ping 或者其他命令,你会看到这样的输出:

  • ping
Output
Could not connect to Redis at host:port: Connection refused

注意,在内部,Redis 也使用 ping 来测量延迟。

与 Redis 断绝联系

若要断开与 Redis 实例的连接,请使用 quit 命令:

  • quit

运行 exit 也会退出连接:

  • exit

退出和退出都会关闭连接,但是只有在所有挂起的答复都写到客户端之后才会关闭。

总结

本指南详细介绍了用于建立、测试和关闭到 Redis 服务器的连接的许多命令。 如果你还有其他相关的命令、参数或者过程想要在本指南中看到,请在下面的评论中提问或者提出建议。

有关 Redis 命令的更多信息,请参见我们关于如何管理 Redis 数据库的系列教程。