如何测试与 ElastiCache Redis OSS 或 Memcached 集群的连接?
我想通过基于 Linux 的客户端测试与 Amazon ElastiCache Redis OSS 或 Amazon ElastiCache Memcached 集群的连接。
解决方案
**注意:**以下解决方法测试仅供计划外使用的连接。如需获取受支持的 Redis 客户端的列表,请参阅 Redis 网站上的连接 Redis 客户端。
Amazon ElastiCache 支持 Redis OSS 和 Memcached 内存中键值引擎。请在启动 ElastiCache 缓存集群时,选择您的首选引擎。
对于搭载 Java、.NET 或 PHP 的 Memcached,最佳做法是使用具备 Auto Discovery 功能的 ElastiCache 客户端。具备 Auto Discovery 功能的 ElastiCache 客户端会自动识别添加到缓存集群的新 ElastiCache 节点。
创建 ElastiCache 集群
要创建 ElastiCache Redis OSS 集群,请参阅为 Valkey 或 Redis OSS 创建集群。
要创建 Memcached 集群,请参阅为 Memcached 创建集群。
连接到 ElastiCache Redis OSS 集群
ElastiCache 支持已禁用集群模式 (CMD) 和已启用集群模式 (CME) 的 Redis OSS 集群。要测试与这些集群的连接,请使用 redis-cli 或 redis6-cli 实用程序。最新版本的 redis-cli 和 redis6-cli 支持 SSL/TLS 连接到已开启加密或身份验证的集群。
在您希望连接的 Amazon Elastic Compute Cloud (Amazon EC2) 实例上下载并编译 redis-cli 实用程序。有关详细信息,请参阅 Amazon EC2 入门。
**注意:**以下示例使用了运行 Amazon Linux、Amazon Linux 2 和 Amazon Linux 2023 的 Amazon EC2 实例。要使用其他 Linux 发行版安装和编译 redis-cli 和 redis6-cli,请参阅操作系统的文档。
要连接到 ElastiCache Redis OSS 集群,请在您的操作系统中运行以下命令之一。
Amazon Linux 2023:
sudo yum install redis6 -y
Amazon Linux 2:
sudo amazon-linux-extras install epel -y sudo yum install gcc jemalloc-devel openssl-devel tcl tcl-devel -y sudo wget http://download.redis.io/redis-stable.tar.gz sudo tar xvzf redis-stable.tar.gz cd redis-stable sudo make BUILD_TLS=yes
Amazon Linux:
sudo yum install gcc jemalloc-devel openssl-devel tcl tcl-devel clang wget sudo wget http://download.redis.io/redis-stable.tar.gz sudo tar xvzf redis-stable.tar.gz cd redis-stable sudo CC=clang make BUILD_TLS=yes
当 Redis-cli 连接到 Redis 时,它使用未加密的 TCP 连接。当 redis-cli 编译时,BUILD_TLS=yes 选项会启用 SSL/TLS。如果您连接的集群对传输没有设置加密,则不需要 BUILD_TLS=yes 选项。
**注意:**当您安装 redis6 软件包时,您会自动安装默认支持 SSL/TLS 的 redis6-cli。
有关如何查找 Redis 端点的信息,请参阅在 ElastiCache 中查找连接端点。
在以下步骤中,加密或未加密的集群是指是否对传输进行加密。
连接到 CMD 未加密的集群
**注意:**在以下示例命令中,将 change-node-type.54awdt.ng.0001.use1.cache.amazonaws.com 替换为您的集群端点,将 6379 替换为您的端口号。
为您的操作系统运行以下命令之一。
Amazon Linux 2023:
redis6-cli -h change-node-type.54awdt.ng.0001.use1.cache.amazonaws.com -p 6379
Amazon Linux 和 Amazon Linux 2:
src/redis-cli -h change-node-type.54awdt.ng.0001.use1.cache.amazonaws.com -p 6379
前面的命令返回的 Redis 命令提示符类似于以下示例:
change-node-type.54awdt.ng.0001.use1.cache.amazonaws.com:6379>
连接到集群后,您可以运行 Redis 命令。
命令示例:
set a "hello" OK get a "hello" quit
有关详细信息,请参阅 Redis 网站上的命令。
连接到 CME 未加密的集群
**注意:**在以下命令中,将 cluster-disable-rediscli.54awdt.clustercfg.use1.cache.amazonaws.com 替换为您的集群的配置端点,将 6379 替换为您的端口号。
为您的操作系统运行以下命令之一。
Amazon Linux 2023:
redis6-cli -h cluster-disabled-rediscli.54awdt.clustercfg.use1.cache.amazonaws.com -c -p 6379
Amazon Linux 和 Amazon Linux 2:
src/redis-cli -h cluster-disabled-rediscli.54awdt.clustercfg.use1.cache.amazonaws.com -c -p 6379
**注意:**在前面的命令中,选项 -c 在 -ASK 和 -MOVED 重定向后启用集群模式。如果您未开启重定向,则该命令返回 MOVED 错误。有关详细信息,请参阅 Redis 网站上的 Redis 集群协议中的客户端和服务器角色以及 Redis 集群规范。
前面的命令返回的 Redis 命令提示符类似于以下示例:
cluster-disabled-rediscli.54awdt.clustercfg.use1.cache.amazonaws.com:>
Redis 命令示例:
set x Hi-> Redirected to slot [16287] located at 172.31.28.122:6379OK set y Hello OK get y "Hello" set z Bye -> Redirected to slot [8157] located at 172.31.9.201:6379 OK get z "Bye" get x -> Redirected to slot [16287] located at 172.31.28.122:6379 "Hi"
在已开启加密或身份验证的情况下连接到集群
要启用 AUTH,您还必须开启传输中加密。有关详细信息,请参阅 ElastiCache 传输中加密 (TLS)。
要同时连接到 CME 和集群 CMD 加密集群,请使用 redis-cli 中的 --tls 选项。如果集群设置了 AUTH 令牌,请使用选项 -a 提供 AUTH 密码。
**注意:**在 Redis 版本 7 和之后的版本中,会对现有 ElastiCache 集群开启传输中加密。您无需重建或重新预调配集群即可更改 Redis OSS 集群的 TLS 配置。应用程序可用性不受影响。
开启传输中加密后,请更新您的客户端配置以使用新的特定于 TLS 的端点。
连接到 CMD 加密集群
**注意:**在以下命令中,将 master.rediscli-cluster-disabled.54awdt.use1.cache.amazonaws.com 替换为您的集群的配置端点,将 6379 替换为您的端口号。
要连接到已开启加密和身份验证的 CMD 集群,请为您的操作系统运行以下命令之一。
Amazon Linux 2023:
redis6-cli -h master.rediscli-cluster-disabled.54awdt.use1.cache.amazonaws.com --tls -a PASSWORD -p 6379
Amazon Linux 和 Amazon Linux 2:
src/redis-cli -h master.rediscli-cluster-disabled.54awdt.use1.cache.amazonaws.com --tls -a PASSWORD -p 6379
要连接到仅开启加密的 CMD 集群,请为您的操作系统运行以下命令之一:
Amazon Linux 2023:
redis6-cli -h master.cluster-disabled-noauth.54awdt.use1.cache.amazonaws.com --tls -p 6379
Amazon Linux 和 Amazon Linux 2:
src/redis-cli -h master.cluster-disabled-noauth.54awdt.use1.cache.amazonaws.com --tls -p 6379
连接到 CME 加密集群
要连接到已开启加密和身份验证的 CME 集群,请为您的操作系统运行以下命令之一:
Amazon Linux 2023:
redis6-cli -h clustercfg.tlswithauth.54awdt.use1.cache.amazonaws.com --tls -c -a PASSWORD -p 6379
Amazon Linux 和 Amazon Linux 2:
src/redis-cli -h clustercfg.tlswithauth.54awdt.use1.cache.amazonaws.com --tls -c -a PASSWORD -p 6379
要连接到仅开启加密的 CME 集群,请为您的操作系统运行以下命令之一:
Amazon Linux 2023:
redis6-cli -h clustercfg.tlswithoutauth.54awdt.use1.cache.amazonaws.com --tls -c -p 6379
Amazon Linux 和 Amazon Linux 2:
src/redis-cli -h clustercfg.tlswithoutauth.54awdt.use1.cache.amazonaws.com --tls -c -p 6379
Redis-cli 替代方案
要在不编译 redis-cli 的情况下运行简短的测试,请使用 telnet 或 openssl 连接到 CMD 集群。
连接后,您可以运行 Redis 命令。
以下示例命令可连接到加密或经过身份验证的 CMD 集群:
openssl s_client -connect master.rediscli-cluster-disabled.54awdt.use1.cache.amazonaws.com:6379
如果您为集群设置了密码,请先连接到集群。连接后,运行以下命令以对集群进行身份验证,然后按 Enter:
Auth Password
**注意:**在之前的示例命令中,将 Password 替换为您的集群密码
以下示例命令可连接到未开启加密或身份验证的 CMD 集群:
telnet change-node-type.54awdt.ng.0001.use1.cache.amazonaws.com 6379
连接到 ElastiCache Memcached 集群
要连接到 Memcached 集群,请使用 telnet 实用程序。
在不采用传输中加密的情况下连接到 Memcached 集群
完成以下步骤:
-
在要测试连接的实例上安装 telnet 实用程序。
对于基于 CentOS 的系统,运行以下命令:
sudo yum install telnet
对于基于 Debian 的系统 (Ubuntu),运行以下命令:
sudo apt-get install telnet
要连接到实例,请参阅连接到 EC2 实例。
-
要连接到端点,请运行以下命令:
telnet mycachecluster.eaogs8.0001.usw2.cache.amazonaws.com 11211
**注意:**将 mycachecluster.eaogs8.0001.usw2.cache.amazonaws.com 替换为您的端点,将 11211 替换为您的节点端口。
输出示例:
Trying 128.0.0.1...Connected to mycachecluster.eaogs8.0001.usw2.cache.amazonaws.com.Escape character is '^]'. >
您现在已连接到一个节点,您可以运行 Memcached 命令。
Memcached 命令示例:
set a 0 0 5helloSTORED get a VALUE a 0 5 hello END
在采用传输中加密的情况下连接到 MemCached 集群
运行 Memcached 版本 1.6.12 及更高版本的集群支持传输中加密。Telnet 不使用加密。要连接到已开启加密的 MemCached 集群,请使用 openssl。
**注意:**只有在创建集群时,您才能在该集群上开启传输中加密。您无法修改集群以开启或关闭传输中加密。有关详细信息,请参阅 ElastiCache 传输中加密 (TLS)。
要连接到端点,请运行以下命令:
openssl s_client -quiet -crlf -connect testwithtls.qtyxq7.cfg.apse2.cache.amazonaws.com:11211
**注意:**将 testwithtls.qtyxq7.cfg.apse2.cache.amazonaws.com 替换为您的端点,将 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
您现在已连接到一个节点,您可以运行 Memcached 命令。
Memcached 命令示例:
set a 0 0 5helloSTORED get a VALUE a 0 5 hello END
相关内容
- 已提问 1 年前lg...
- AWS 官方已更新 6 个月前
- AWS 官方已更新 6 个月前