步骤 4:连接到集群节点 - 亚马逊 ElastiCache (Redis OSS)
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

步骤 4:连接到集群节点

在继续之前,请完成步骤 3:授予对集群的访问权限

此部分假设您已创建了 Amazon EC2 实例并可以连接到该实例。有关如何执行此操作的说明,请参阅 Amazon EC2 入门指南

仅当您进行授权后,Amazon EC2 实例才能连接到集群节点。

查找您的节点端点

在您的集群处于可用状态且您已授予对该集群的访问权限时,您可以登录 Amazon EC2 实例并连接到该集群。为此,您必须先确定端点。

查找 Redis OSS(已禁用集群模式)集群的终端节点(控制台)

如果 Redis OSS(已禁用集群模式)集群只有一个节点,则该节点的终端节点用于读取和写入。如果该集群具有多个节点,则有三种类型的端点,即主端点读取器端点节点端点

主端点是一个 DNS 名称,始终解析为集群中的主节点。主端点不受集群更改的影响,如将只读副本提升为主角色。对于写入活动,我们建议您的应用程序连接到主端点。

读取器终端节点将在 ElastiCache (Redis OSS) 集群中的所有只读副本之间平均分配到该终端节点的传入连接。应用程序何时创建连接或应用程序如何(重复)使用连接等附加因素将决定流量分配。读取器端点会在添加或删除副本时实时跟踪集群更改。您可以将 ElastiCache (Redis OSS) 集群的多个只读副本放在不同的 Amazon 可用区 (AZ) 中,以确保读取器终端节点的高可用性。

注意

读取器端点不是负载均衡器。它是一个 DNS 记录,将以循环方式解析为副本节点之一的 IP 地址。

对于读取活动,应用程序还可以连接到集群中的任何节点。与主端点不同,节点端点会解析为特定端点。如果您在您的集群中进行更改(例如添加或删除副本),则必须在您的应用程序中更新节点端点。

查找 Redis OSS(已禁用集群模式)集群的终端节点
  1. 登录 Amazon Web Services Management Console 并打开 ElastiCache 控制台,网址为 https://console.aws.amazon.com/elasticache/

  2. 在导航窗格中,选择 Redis OSS 缓存

    集群屏幕将显示一个列表,其中包括所有现有的 Redis OSS 无服务器缓存、Redis OSS(已禁用集群模式)和 Redis OSS(已启用集群模式)集群。选择在 创建 Redis OSS(已禁用集群模式)集群(控制台) 部分中创建的集群。

  3. 要查找集群的主端点和/或读取器端点,请选中集群的名称(不是单选按钮)。

    图片:Redis OSS(已禁用集群模式)集群的主终端节点

    Redis OSS(已禁用集群模式)集群的主终端节点和读取器终端节点

    如果该集群只有一个节点,则没有主端点,您可以继续下一步。

  4. 如果 Redis OSS(已禁用集群模式)集群具有副本节点,则可以通过选择集群的名称然后选择 “节点” 选项卡来找到集群的副本节点终端节点。

    此时会显示节点屏幕,其中列出了集群中的每个节点(主节点和副本节点)及其端点。

    图片:Redis OSS(已禁用集群模式)集群的节点终端节点

    Redis OSS(已禁用集群模式)集群的节点终端节点

  5. 将端点复制到剪贴板:

    1. 逐一找到要复制的端点。

    2. 直接选择端点前面的复制图标。

    端点现已复制到剪贴板。有关使用端点连接到节点的信息,请参阅 连接到节点

Redis OSS(已禁用集群模式)主终端节点如下所示。根据是否已启用传输中加密而有所不同。

未启用传输中加密

clusterName.xxxxxx.nodeId.regionAndAz.cache.amazonaws.com:port redis-01.7abc2d.0001.usw2.cache.amazonaws.com:6379

已启用传输中加密

master.clusterName.xxxxxx.regionAndAz.cache.amazonaws.com:port master.ncit.ameaqx.use1.cache.amazonaws.com:6379

为进一步了解如何查找您的端点,请参阅您正在运行的引擎和集群类型的相关主题。

现在您有了所需的端点,便可以登录 EC2 实例并连接到集群或复制组。在以下示例中,您使用 redis-cli 实用工具连接到集群。最新版本的 redis-cli 还支持 SSL/TLS 用于连接启用加密/身份验证的集群。

以下示例使用运行 Amazon Linux 和 Amazon Linux 2 的 Amazon EC2 实例。有关使用其他 Linux 发行版安装和编译 redis-cli 的详细信息,请参阅特定操作系统的文档。

注意

此过程包括使用仅供计划外使用的 redis-cli 实用工具测试连接。有关支持的 Redis OSS 客户端的列表,请参阅 Redis OSS 文档。有关将 Amazon SDK 与配合使用的示例 ElastiCache,请参阅ElastiCache 和 Amazon 开发工具包入门

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

  1. 运行以下命令以连接到集群,并将 primary-endpointport number 替换为您的集群端点和您的端口号。(Redis OSS 的默认端口为 6379。)

    src/redis-cli -h primary-endpoint -p port number

    Redis OSS 命令提示符中的结果与以下内容类似:

    primary-endpoint:port number
  2. 您现在可以运行 Redis OSS 命令了。

    set x Hello OK get x "Hello"

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

  1. 运行以下命令以连接到集群,并将 configuration-endpointport number 替换为您的集群的端点和您的端口号。(Redis OSS 的默认端口为 6379。)

    src/redis-cli -h configuration-endpoint -c -p port number
    注意

    在上述命令中,选项 -c 可遵循 -ASK 和 -MOVED 重新导向启用集群模式。

    Redis OSS 命令提示符中的结果与以下内容类似:

    configuration-endpoint:port number
  2. 您现在可以运行 Redis OSS 命令了。请注意,重新导向发生是因为您使用 -c 选项启用了它。如果未启用重新导向,则命令将返回 MOVED 错误。有关 MOVED 错误的更多信息,请参阅 Redis OSS 集群规范

    set x Hi -> Redirected to slot [16287] located at 172.31.28.122:6379 OK 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"

连接到启用加密/身份验证的集群

默认情况下,redis-cli 在连接 Redis OSS 时使用未加密的 TCP 连接。选项 BUILD_TLS=yes 在 redis-cli 编译时启用 SSL/TLS,如上述 下载并设置 redis-cli 部分所示。启用 AUTH 是可选的。但是,您必须启用传输过程中的加密才能启用 AUTH。有关 ElastiCache 加密和身份验证的更多详细信息,请参阅ElastiCache 传输中加密 (TLS)

注意

您可以通过 redis-cli 使用选项 --tls 连接到已启用和已禁用集群模式的加密集群。如果集群设置了 AUTH 令牌,则可以使用选项 -a 以提供 AUTH 密码。

在以下示例中,确保将 cluster-endpoint(集群端点)port number(端口号) 替换为您的集群端点和您的端口号。(Redis OSS 的默认端口为 6379。)

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

以下示例连接到已启用加密和身份验证的集群:

src/redis-cli -h cluster-endpoint --tls -a your-password -p port number

以下示例连接到仅启用加密的集群:

src/redis-cli -h cluster-endpoint --tls -p port number

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

以下示例连接到已启用加密和身份验证的集群:

src/redis-cli -c -h cluster-endpoint --tls -a your-password -p port number

以下示例连接到仅启用加密的集群:

src/redis-cli -c -h cluster-endpoint --tls -p port number

连接到集群后,您可以针对未加密的集群运行 Redis OSS 命令,如前面的示例所示。

Redis-cli 替代方案

如果集群未启用集群模式,并且您需要与集群建立连接以进行短期测试(但不经过 redis-cli 编译),则可以使用 telnet 或 openssl。在以下示例命令中,确保将 cluster-endpoint(集群端点)port number(端口号) 替换为您的集群端点和您的端口号。(Redis OSS 的默认端口为 6379。)

以下示例连接到已启用加密和/或身份验证且已禁用集群模式的集群:

openssl s_client -connect cluster-endpoint:port number

如果集群已设置密码,请先连接到集群。连接后,使用以下命令对集群进行身份验证,然后按 Enter 键。在以下示例中,将 your-password 替换为您的集群密码。

Auth your-password

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

telnet cluster-endpoint port number

要使用 Redis OSS CLI 从 EC2 Windows 实例连接到 Redis OSS 集群,你必须下载 redis-cli 软件包并使用 redis-cli.exe 从 EC2 Windows 实例连接到 Redis OSS 集群。

在以下示例中,您将使用 redis-cli 实用程序连接到未启用加密且运行 Redis OSS 的集群。有关 Redis OSS 和可用的 Redis OSS 命令的更多信息,请参阅 Redis OSS 网站上的 Redis OSS 命令

使用 redis-cli 连接到未启用加密的 Redis OSS 集群
  1. 使用您选择的连接实用工具连接到 Amazon EC2 实例。有关如何连接到 Amazon EC2 实例的说明,请参阅 Amazon EC2 入门指南

  2. 将链接复制并粘贴到互联网浏览器https://github.com/microsoftarchive/redis/releases/download/win-3.0.504/Redis-x64-3.0.504.zip中,即可从可用版本中下载 Redis OSS 客户端的 zip 文件,网址为 GitHub https://github.com/microsoftarchive/redis/releases/tag/win-3.0.504

    将 zip 文件提取到您指定的文件夹/路径。

    打开命令提示符并切换到 Redis OSS 目录并运行命令c:\Redis>redis-cli -h Redis_Cluster_Endpoint -p 6379

    例如:

    c:\Redis>redis-cli -h cmd.xxxxxxx.ng.0001.usw2.cache.amazonaws.com -p 6379
  3. 运行 Redis OSS 命令。

    现在,您已连接到集群,可以运行如下所示的 Redis OSS 命令。

    set a "hello" // Set key "a" with a string value and no expiration OK get a // Get value for key "a" "hello" get b // Get value for key "b" results in miss (nil) set b "Good-bye" EX 5 // Set key "b" with a string value and a 5 second expiration "Good-bye" get b // Get value for key "b" "Good-bye" // wait >= 5 seconds get b (nil) // key has expired, nothing returned quit // Exit from redis-cli