跳至内容

如何连接到在 ElastiCache for Valkey、ElastiCache for Redis OSS 或 ElastiCache for Memcached 引擎上运行的 ElastiCache 无服务器集群或自托管式集群?

4 分钟阅读
0

我想测试在 Amazon ElastiCache for Valkey、Amazon ElastiCache for Redis OSS 或 Amazon ElastiCache for Memcached 引擎上运行的 Amazon ElastiCache 无服务器集群或自托管式集群的连接。

简短描述

**注意:**以下解决方法用于测试仅供计划外使用的连接。有关受支持的客户端列表,请参阅 Redis 网站上的 Connect with Redis client API libraries(连接 Redis 客户端 API 库)和 Valkey 网站上的 Client libraries(客户端库)

根据您的 ElastiCache 集群配置,完成以下部分中的步骤以测试您的连接:

  • 连接到未加密的 ElastiCache for Valkey 或 ElastiCache for Redis OSS 集群。这包括(已禁用集群模式)和(已启用集群模式)的集群。
  • 连接到加密的 ElastiCache for Valkey 或 ElastiCache for Redis OSS 集群。这包括(已禁用集群模式)和(已启用集群模式)的集群。
  • 使用 telnet 或 OpenSSL 连接到(已禁用集群模式)的集群。
  • 连接到 ElastiCache for Memcached 集群。这包括未加密集群和加密集群。
  • 连接到 ElastiCache 无服务器缓存。

解决方法

**注意:**如果您在运行 AWS 命令行界面 (AWS CLI) 命令时收到错误,请参阅 AWS CLI 错误故障排除。此外,请确保您使用的是最新版本的 AWS CLI

连接到未加密的 ElastiCache for Valkey 或 ElastiCache for Redis OSS 集群

在 Valkey 和 Redis OSS 集群中,ElastiCache 同时支持(已禁用集群模式)和(已启用集群模式)。要测试与这些集群的连接,请使用 valkey-cliredis6-cli。有关详细信息,请参阅 Valkey 网站上的 Valkey CLI 和 Redis 网站上的 Redis CLI

**注意:**要安装 valkey-cli,请参阅与 Linux 的加密连接。如果您的集群未加密,请不要包含 BUILD_TLS 参数。要在 Amazon Linux 2023 上进行测试,请安装 redis6 软件包。该软件包包含默认支持加密的 redis6-cli

有关如何查找 Redis 端点的信息,请参阅在 ElastiCache 中查找连接端点

连接到(已禁用集群模式)的 Valkey 或 Redis OSS 集群

要连接到(已禁用集群模式)的集群,请运行以下命令:

Amazon Linux 2023:

redis6-cli -h yourEndpoint -p 6379

Amazon Linux 和 Amazon Linux 2:

src/valkey-cli -h yourEndpoint -p 6379

**注意:**请将 yourEndpoint 替换为您的集群的端点,将 6379 替换为您的端口号。

上述命令将返回类似于以下示例的 Valkey 命令提示:

yourEndpoint:6379>

连接到(已启用集群模式)的 Valkey 或 Redis OSS 集群

要连接到(已启用集群模式)的集群,请运行以下命令:

Amazon Linux 2023:

redis6-cli -c -h yourConfigEndpoint -p 6379

Amazon Linux 和 Amazon Linux 2:

src/valkey-cli -c -h yourConfigEndpoint -p 6379

注意:请将 yourConfigEndpoint 替换为您的集群的端点,将 6379 替换为您的端口号。-c 参数会在发生 -ASK-MOVED 重定向后启用集群模式。如果您未开启重定向,则该命令将返回 MOVED 错误。

上述命令将返回类似于以下示例的 Valkey 命令提示:

yourConfigEndpoint:>

连接到加密的 ElastiCache for Valkey 或 ElastiCache for Redis OSS 集群

要连接到(已启用集群模式)或(已禁用集群模式)的加密集群,请在 valkey-cli 中使用 --tls 参数。--tls 参数将为集群启用传输中加密。如果集群上设置了 AUTH 令牌,请使用 -a 参数提供 AUTH 密码。或者,使用 AUTH 命令进行身份验证,如以下示例命令中所示。

启用传输中加密后,更新您的客户端配置,以使用新的特定于 TLS 的端点。有关详细信息,请参阅启用传输中加密时的最佳实践

**注意:**在使用 Valkey 或 Redis OSS 版本 7 及更高版本的集群中,您可以为现有 ElastiCache 集群启用传输中加密。您无需重建集群即可更改 Valkey 或 Redis OSS 集群的 TLS 配置。

连接到(已禁用集群模式)的加密集群

要连接到启用了加密和身份验证(已禁用集群模式)的集群,请运行以下命令:

Amazon Linux 2023:

redis6-cli -h yourEndpoint -p 6379 --tls

AUTH <username> <password>

Amazon Linux 和 Amazon Linux 2:

src/valkey-cli -h yourEndpoint -p 6379 –tls

AUTH <username> <password>

**注意:**请将 yourEndpoint 替换为您的集群的端点,将 6379 替换为您的端口号。当您使用 AUTH 命令的单参数形式并仅指定密码时,Valkey CLI 会假定用户名为 default。有关详细信息,请参阅 Valkey 网站上的 AUTH 命令。

连接到(已启用集群模式)的加密集群

要连接到启用了加密和身份验证(已启用集群模式)的集群,请运行以下命令:

Amazon Linux 2023:

redis6-cli -c -h yourConfigEndpoint -p 6379 –tls

AUTH <username> <password>

Amazon Linux 和 Amazon Linux 2:

src/valkey-cli -c -h yourConfigEndpoint -p 6379 –tls

AUTH <username> <password>

**注意:**请将 yourConfigEndpoint 替换为您的集群的端点,将 6379 替换为您的端口号。当您使用 AUTH 命令的单参数形式并仅指定密码时,Valkey CLI 会假定用户名为 default。有关详细信息,请参阅 Valkey 网站上的 AUTH 命令。

使用 OpenSSL 的 telnet 连接到(已禁用集群模式)的集群

要在不配置 valkey-cli 的情况下运行简短的测试,请使用 telnet 或 OpenSSL 连接到(已禁用集群模式)的集群。使用 telnet 或 OpenSSL 进行连接后,您可以运行 Valkey 命令。

以下示例命令将连接到已加密或经过身份验证(已禁用集群模式)的集群:

openssl s_client -connect master.valkeycmdencrypted.dcba18.use1.cache.amazonaws.com:6379

如果您为集群设置了密码,请连接到集群并运行以下命令,以对集群进行身份验证。然后按 Enter

AUTH <username> <password>

**注意:**请将 usernamepassword 替换为您的用户凭证。

以下示例命令将连接到未启用加密或身份验证(已禁用集群模式)的集群:

telnet yourEndpoint 6379

连接到 ElastiCache for Memcached 集群

要连接到 ElastiCache for Memcached 集群,请根据您的集群完成以下步骤。

连接到未加密的 Memcached 集群

要连接到未加密的 Memcached 集群,请使用 telnet 实用程序。完成以下步骤:

  1. 在要测试连接的实例上安装 telnet 实用程序。

    对于基于 CentOS 的系统,运行以下命令:

    sudo yum install telnet

    对于基于 Debian 的系统 (Ubuntu),运行以下命令:

    sudo apt-get install telnet

    有关详细信息,请参阅连接到您的 EC2 实例

  2. 要连接到端点,请运行以下命令:

    telnet yourEndpoint 11211

    **注意:**请将 yourendpoint 替换为您的集群端点,将 11211 替换为您的节点的端口。

    输出示例:

    Trying 128.0.0.1...
    Connected to mycachecluster.dcba18.0001.usw2.cache.amazonaws.com.
    Escape character is '^]'.>

连接到加密的 Memcached 集群

运行 Memcached 1.6.12 及更高版本的集群支持传输中加密。由于 telnet 不支持加密,因此请使用 OpenSSL 连接到已启用加密的 Memcached 集群。

**注意:**只有在创建集群时,您才能在该集群上启用传输中加密。您无法修改集群以启用或关闭传输中加密。有关详细信息,请参阅 ElastiCache 传输中加密 (TLS)

要连接到端点,请运行以下命令:

openssl s_client -quiet -crlf -connect yourEndpoint:11211

**注意:**请将 yourEndpoint 替换为您的端点,将 11211 替换为您的节点的端口。

输出示例:

depth=2 C = US, O = Amazon, CN = Amazon Root CA 1  verify return:1  depth=1 C = US, O = Amazon, CN = Amazon RSA 2048 M02  verify return:1  
depth=0 CN = *.testwithtls.qtyxq7.apse2.cache.amazonaws.com  
verify return:1

连接到 ElastiCache 无服务器缓存

默认情况下,ElastiCache 无服务器会启动所有默认启用传输中加密的集群。您无法关闭此选项。对于您选择的客户端库,这些库必须支持建立 TLS 连接的功能。

对于适用于 Valkey 和 Redis OSS 的 ElastiCache 无服务器,缓存会播发两个具有相同主机名的端口: 主端口: 6379 和读取端口: 6380。主端口允许读取和写入操作,读取端口使用 READONLY 命令来实现低延迟的最终一致性读取。

对于适用于 Memcached 的 ElastiCache 无服务器缓存,缓存也会播发两个具有相同主机名的端口: 主端口: 11211 和读取端口: 11212。要允许资源访问这些端口,请更新您的安全组和网络访问控制列表(网络 ACL)。

要连接到 ElastiCache 无服务器缓存,请根据您的引擎和端口运行以下命令:

Valkey 或 Redis OSS (Amazon Linux 2023):

redis6-cli -c -h yourEndpoint -p 6379 –tls

Valkey 或 Redis OSS(Amazon Linux 或 Amazon Linux 2):

src/valkey-cli -c -h yourEndpoint -p 6379 –tls

Memcached:

openssl s_client -connect yourEndpoint:11212 -crlf

**注意:**请将 yourEndpoint 替换为您的集群的端点。

相关信息

Valkey 网站上的 Command reference(命令参考)

ElastiCache 传输中加密 (TLS)

如何解决 ElastiCache for Redis 自行设计集群的连接问题?

AWS 官方已更新 7 个月前