(书)如何管理redis数据库-2.如何连接到Redis数据库

介绍

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

如何使用本指南

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

本指南中显示的命令已在运行Redis版本的Ubuntu 18.04服务器上进行了测试 4.0.9。要设置类似的环境,您可以按照我们的指南如何在Ubuntu 18.04上安装和保护Redis的步骤1进行操作。我们将通过使用Redis命令行界面运行它们来演示这些命令的行为。请注意,如果您使用其他Redis界面(例如Redli),则某些命令的确切输出可能会有所不同。redis-cli

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

连接到Redis

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

  * redis-cli 

这将带您进入redis-cli的_交互模式_,该_模式_为您提供一个read-eval-print循环(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密码,则即使客户端未-aredis-cli命令中包含该标志,客户端也可以连接到Redis 。但是,他们将无法添加,更改或查询数据,除非他们进行身份验证。要在连接后进行身份验证,请使用auth命令和密码:

  * auth password 

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

如果您正在使用托管Redis数据库,则云提供商可能会给您提供一个以URI开头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将进入_断开连接模式_。提示将反映以下内容:

  *  

每次在断开连接状态下运行命令时,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 

请注意,pingRedis在内部也使用它来测量延迟

与Redis断开连接

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

  * quit 

运行exit也会退出连接:

  * exit 

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

结论

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