怎么连接 Redis

相关系列教程

  1. 如何在 Ubuntu 18.04 上安装和保护 Redis
  2. 如何连接到 Redis 数据库
  3. 如何管理 Redis 数据库和 Keys
  4. 如何在 Redis 中管理副本和客户端
  5. 如何在 Redis 中管理字符串
  6. 如何在 Redis 中管理 List
  7. 如何在 Redis 中管理 Hashes
  8. 如何在 Redis 中管理 Sets
  9. 如何在 Redis 中管理 Sorted Sets
  10. 如何在 Redis 中运行事务
  11. 如何使 Redis 中的 Key 失效
  12. 如何解决 Redis 中的故障
  13. 如何从命令行更改 Redis 的配置
  14. Redis 数据类型简介

介绍

Redis 是一个开源的内存中键值数据存储(In-Memory Key-Value Store)。无论您是在本地安装 Redis 还是使用远程实例,都需要连接到该实例才能执行大多数操作。在本教程中,我们将介绍如何从命令行连接到 Redis,如何验证和测试您的连接,以及如何关闭 Redis 连接。

如何使用本指南

本指南以备有完整示例的备忘单形式编写。我们鼓励您跳至与您要完成的任务相关的任何部分。

本指南中显示的命令已在运行 Redis 版本 4.0.9Ubuntu 18.04 服务器上进行了测试。要设置类似的环境,您可以按照我们的指南 如何在 Ubuntu 18.04 上安装和保护 Redis步骤 1 进行操作。我们将通过使用 Redis 命令行界面 redis-cli 运行它们来演示这些命令的行为。

请注意,如果您使用其他 Redis 界面(例如 Redli),则某些命令的确切输出可能会有所不同。

另外,您可以提供一个托管的 Redis 数据库实例来测试这些命令。但是请注意,根据数据库提供者所允许的控制级别,本指南中的某些命令可能无法按所述方式工作。要配置 DigitalOcean 托管数据库,请遵循我们的 托管数据库产品文档。然后,您必须 安装 Redli 设置 TLS 隧道 才能通过 TLS 连接到托管数据库。

连接到 Redis

如果已 redis-server 在本地安装,则可以使用以下 redis-cli 命令连接到 Redis 实例:

redis-cli

这将带您进入 redis-cli交互模式_,该 _模式 为您提供一个 read-eval-print loop (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-cli 命令中包含 -a 标志,客户端也可以连接到 Redis。但是,他们只有在通过身份验证后才能添加、更改或查询数据。要在连接后进行身份验证,请使用 auth 命令后跟密码:

auth password

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

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

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

使用以下语法通过 Redli 连接到数据库。请注意,此示例包括 --tls 选项(该选项指定应通过 TLS 建立连接)和 -u 标志(该标志声明以下参数将是连接 URI):

redli --tls -u rediss://connection_URI

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

Could not connect to Redis at 127.0.0.1:6379: Connection refused

每次在断开连接状态下运行命令时,Redis 都会尝试重新建立连接。

测试连接

ping 命令对于测试与数据库的连接是否有效很有用。请注意,这是 Redis 特定的命令,与 ping 网络实用程序) 不同。但是,两者共享相似的功能,因为它们都用于检查两台计算机之间的连接。

如果连接建立并且不包含任何参数,则 ping 命令将返回 PONG

ping
PONG

如果为 ping 命令提供参数,它将返回该参数,而不是 PONG,表示连接成功:

ping "hello Redis!"
"hello Redis!"

如果 ping 以断开连接的方式运行或其他任何命令,您将看到类似以下的输出:

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

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

与 Redis 断开连接

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

quit

运行 exit 也会退出连接:

exit

quitexit 都会关闭连接,但是只有在所有未决答复都已写到客户端后,才可以。

结论

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

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

说明:本文内容基于 Ubuntu 18.04 和 Redis 4.0.9 版本编写。较新的 Redis 版本或操作系统可能在默认配置、命令输出或安全性要求上有所不同,请根据实际情况调整。