如何连接到在 ElastiCache for Valkey、ElastiCache for Redis OSS 或 ElastiCache for Memcached 引擎上运行的 ElastiCache 无服务器集群或自托管式集群?
我想测试在 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-cli 或 redis6-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>
**注意:**请将 username 和 password 替换为您的用户凭证。
以下示例命令将连接到未启用加密或身份验证(已禁用集群模式)的集群:
telnet yourEndpoint 6379
连接到 ElastiCache for Memcached 集群
要连接到 ElastiCache for Memcached 集群,请根据您的集群完成以下步骤。
连接到未加密的 Memcached 集群
要连接到未加密的 Memcached 集群,请使用 telnet 实用程序。完成以下步骤:
-
在要测试连接的实例上安装 telnet 实用程序。
对于基于 CentOS 的系统,运行以下命令:
sudo yum install telnet对于基于 Debian 的系统 (Ubuntu),运行以下命令:
sudo apt-get install telnet有关详细信息,请参阅连接到您的 EC2 实例。
-
要连接到端点,请运行以下命令:
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(命令参考)
相关内容
- 已提问 3 个月前

