

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

# 为 Redis OSS 创建基于节点的 ElastiCache 集群
<a name="SubnetGroups.designing-cluster-pre.redis"></a>

为了为 Redis OSS 创建基于节点的 ElastiCache 集群，您必须执行以下一次性操作。

有关设置的更多信息， ElastiCache 请参阅[设置 ElastiCache](set-up.md)。

**Topics**
+ [步骤 1：创建子网组](#SubnetGroups.Creating-gs.redis)
+ [步骤 2：创建集群](#GettingStarted.CreateCluster.redis)
+ [步骤 3：授予对集群的访问权限](#GettingStarted.AuthorizeAccess.redis)
+ [步骤 4：连接到集群节点](#GettingStarted.ConnectToCacheNode.redis)

## 步骤 1：创建子网组
<a name="SubnetGroups.Creating-gs.redis"></a>

在您创建集群之前，请先创建子网组。*缓存子网组*是您要为 VPC 中的集群指定的子网集合。当您启动 VPC 中的某个集群时，您需要选择一个缓存子网组。然后 ElastiCache 使用该缓存子网组将该子网内的 IP 地址分配给群集中的每个缓存节点。

当您创建新的子网组时，请记下可用 IP 地址的数量。如果子网拥有的空闲 IP 地址很少，则您可以向集群中添加的额外节点数可能会受限制。要解决此问题，您可以对某一子网组分配一个或多个子网，这样集群的可用区中便会有充足数量的 IP 地址。之后，便可向您的集群中添加更多节点。

以下过程演示如何创建名为 `mysubnetgroup` 的子网组（控制台）和AWS CLI。

### 创建子网组（控制台）
<a name="SubnetGroups.Creating.CON.redis"></a>

以下过程介绍如何创建子网组（控制台）。

**创建子网组（控制台）**

1. 登录到AWS管理控制台，然后在上打开 ElastiCache 控制台[https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/)。

1. 在导航列表中，选择 ** Subnet Groups**。

1. 选择 **Create Subnet Group**。

1. 在 **Create Subnet Group（创建子网组）**向导中，执行以下操作。根据需要完成所有设置后，选择 **Yes, Create**。

   1. 在 **Name** 框中，为子网组键入名称。

   1. 在 **Description** 框中，为子网组键入描述。

   1. 在 **VPC ID** 框中，选择您创建的 Amazon VPC。

   1. 在 **Availability Zone（可用区）**和 **Subnet ID（子网 ID）**列表中，选择可用区或 [Local Zone（本地区域）](https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/Local_zones.html)和您的私有子网 ID，然后选择 **Add（添加）**。  
![\[图像：创建子网 VPC 屏幕\]](http://docs.aws.amazon.com/zh_cn/AmazonElastiCache/latest/dg/images/vpc-03.png)

1. 在出现的确认信息中，选择 **Close**。

您的新子网组显示在 ElastiCache 控制台的**子网组**列表中。您可以在窗口底部选择子网组以查看详细信息，例如与此组关联的所有子网。

### 创建子网组 (AWS CLI)
<a name="SubnetGroups.Creating.redis.CLI"></a>

在命令提示符处，使用命令 `create-cache-subnet-group` 创建子网组。

对于 Linux、macOS 或 Unix：

```
aws elasticache create-cache-subnet-group \
    --cache-subnet-group-name mysubnetgroup \
    --cache-subnet-group-description "Testing" \
    --subnet-ids subnet-53df9c3a
```

对于 Windows：

```
aws elasticache create-cache-subnet-group ^
    --cache-subnet-group-name mysubnetgroup ^
    --cache-subnet-group-description "Testing" ^
    --subnet-ids subnet-53df9c3a
```

该命令应该生成类似于下述信息的输出：

```
{
    "CacheSubnetGroup": {
        "VpcId": "vpc-37c3cd17", 
        "CacheSubnetGroupDescription": "Testing", 
        "Subnets": [
            {
                "SubnetIdentifier": "subnet-53df9c3a", 
                "SubnetAvailabilityZone": {
                    "Name": "us-west-2a"
                }
            }
        ], 
        "CacheSubnetGroupName": "mysubnetgroup"
    }
}
```

有关更多信息，请参阅AWS CLI主题[create-cache-subnet-group](https://docs.aws.amazon.com/cli/latest/reference/elasticache/create-cache-subnet-group.html)。

## 步骤 2：创建集群
<a name="GettingStarted.CreateCluster.redis"></a>

在创建用于生产使用的集群之前，您显然需要考虑如何配置集群以满足您的业务需求。这些问题在 [准备在 ElastiCache 中创建集群](Clusters.Prepare.md) 部分中解决。就本入门练习而言，您将创建一个禁用集群模式的集群，并且您可以在其适用时接受默认配置值。

您所创建的集群将是活动的，不会在沙盒中运行。在您删除实例之前，您需要为其支付标准 ElastiCache 使用费。如果您一鼓作气完成此处描述的练习并在使用完毕后删除集群，则产生的全部费用将非常少（通常不到一美元）。有关 ElastiCache 使用费率的更多信息，请参阅 [Amazon ElastiCache](https://aws.amazon.com/elasticache/)。

在虚拟私有云（VPC）中基于 Amazon VPC 服务启动集群。

### 创建 Redis OSS（已禁用集群模式）集群（控制台）
<a name="Clusters.Create.CON.Redis-gs"></a>

**使用控制台创建 Redis OSS（已禁用集群模式）集群 ElastiCache**

1. 登录AWS 管理控制台并打开 Amazon ElastiCache 控制台，网址为[https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/)。

1. 从右上角的列表中，选择要在其中启动此集群的AWS区域。

1. 从导航窗格中，选择 **Get started**（入门）。

1. 选择 **Create VPC**（创建 VPC）并按照[创建虚拟私有云（VPC）](https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/VPCs.CreatingVPC.html)中的步骤操作。

1. 在 ElastiCache 控制面板页面上，选择 **Valkey 缓存**或 **Redis OSS** 缓存。在本练习中，我们将选择 **Redis OSS 缓存**，然后选择**创建 Redis OSS** 缓存。

1. 在 **Cluster settings**（集群设置）下，执行以下操作：

   1. 选择 **Configure and create a new cluster**（配置和创建新集群）。

   1. 对于 **Cluster mode**（集群模式），选择 **Disabled**（已禁用）。

   1. 对于 **Cluster info**（集群信息），为 **Name**（名称）输入一个值。

   1. （可选）为 **Description**（描述）输入一个值。

1. 在 **Location**（位置）下：

------
#### [ AWS Cloud  ]

   1. 对于 **AWS Cloud**，我们建议您接受 **Multi-AZ**（多可用区）和 **Auto-failover**（自动失效转移）的默认设置。有关更多信息，请参阅使用[多可用区 ElastiCache 最大限度地缩短 Redis OSS 的停机时间](https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/AutoFailover.html)。

   1. 在 **Cluster settings**（集群设置）下

      1. 对于 **Engine version**（引擎版本），选择一个可用的引擎版本。

      1. 对于 **Port**（端口），使用默认端口 6379。如果您出于某个原因需要使用其他端口，请输入相应的端口号。

      1. 对于**参数组**，选择一个参数组或创建一个新参数组。参数组控制集群的运行时参数。有关参数组的更多信息，请参阅[Valkey 和 Redis OSS 参数](ParameterGroups.Engine.md#ParameterGroups.Redis) 和[创建 ElastiCache 参数组](ParameterGroups.Creating.md)。
**注意**  
当您选择要设置引擎配置值的参数组时，该参数组将应用于全局数据存储中的所有集群。在 **Parameter Groups（参数组）**页面上，是/否 **Global（全局）**属性指示参数组是否属于全局数据存储。

      1. 对于 **Node type（节点类型）**，请选择向下箭头（![\[Downward-pointing triangle icon, typically used to indicate a dropdown menu.\]](http://docs.aws.amazon.com/zh_cn/AmazonElastiCache/latest/dg/images/ElastiCache-DnArrow.png)）。在 **Change node type（更改节点类型）**对话框中，为所需节点类型选择 **Instance family（实例系列）**值。接着选择要用于此集群的节点类型，然后选择**保存**。

         有关更多信息，请参阅 [选择节点大小](CacheNodes.SelectSize.md)。

         如果您选择 r6gd 节点类型，则系统会自动启用数据分层。有关更多信息，请参阅 [ElastiCache 中的数据分层](data-tiering.md)。

      1. 对于 **Number of replicas**（副本数），选择所需的只读副本数。如果您启用多可用区，则该数字必须介于 1-5 之间。

   1. 在 **Connectivity**（连接）下

      1. 对于 **Network type**（网络类型），选择此集群将支持的 IP 版本。

      1. 对于**子网组**，请选择要应用于此集群的子网。 ElastiCache 使用该子网组选择子网和该子网内的 IP 地址以与您的节点关联。 ElastiCache 群集需要一个双堆栈子网 IPv4 并分配给它们 IPv6 的地址才能在双堆栈模式下运行，并且需要一个 IPv6仅限子网才能以-only模式运行。 IPv6

         创建新的子网组时，输入其所属的 **VPC ID**。

         有关更多信息，请参阅:
         + [在中选择网络类型 ElastiCache](network-type.md).
         + [在您的 VPC 中创建子网](https://docs.aws.amazon.com/vpc/latest/userguide/working-with-vpcs.html#AddaSubnet)。

         如果您是 [将 Local Zones 与 ElastiCache 结合使用](Local_zones.md)，则必须创建或选择位于本地区域中的子网。

         有关更多信息，请参阅 [子网和子网组](SubnetGroups.md)。

   1. 对于 **Availability zone placements**（可用区位置），您有两种选择：
      + **无偏好** — ElastiCache 选择可用区。
      + **Specify availability zones（指定可用区）**– 您为各集群指定可用区。

        如果您选择指定可用区，则需从列表中为各分片中的每个集群选择可用区。

      有关更多信息，请参阅 [为 ElastiCache 选择区域和可用区](RegionsAndAZs.md)。

   1. 选择 **Next**（下一步）

   1. 在**高级 Redis OSS 设置**下

      1. 对于 **Security**（安全）：

        1. 要加密您的数据，您有以下选项：
           + **Encryption at rest（静态加密）**– 对磁盘上存储的数据启用加密。有关更多信息，请参阅[静态加密](https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/at-rest-encryption.html)。
**注意**  
您可以选择提供不同的加密密钥，方法是选择 “**客户托管AWS KMS 密钥**” 并选择密钥。有关更多信息，请参阅[使用AWS KMS 客户自主管理型密钥](https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/at-rest-encryption.html#using-customer-managed-keys-for-elasticache-security)。
           + **Encryption in-transit（传输中加密）**– 对传输中数据启用加密。有关更多信息，请参阅[传输中加密](https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/in-transit-encryption.html)。对于 Redis OSS 及更高版本的 ElastiCache 引擎版本 6.0，如果您启用传输中加密，系统将提示您指定以下**访问**控制选项之一：
             + **No Access Control（无访问控制）**– 此选项为默认设置。这表示对用户访问集群的权限没有任何限制。
             + **User Group Access Control List（用户组访问控制列表）**– 选择具有集群访问权限的已定义用户组。有关更多信息，请参阅 [使用控制台和 CLI 管理用户组](Clusters.RBAC.md#User-Groups)。
             + **Redis AUTH 默认用户** – Valkey 或 Redis OSS 服务器的身份验证机制。有关更多信息，请参阅 [AUTH](https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/auth.html)。
           + **AUTH** – Redis OSS 服务器的身份验证机制。有关更多信息，请参阅 [AUTH](https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/auth.html)。
**注意**  
对于 Redis OSS 3.2.6 以上的版本（版本 3.2.10 除外），只能选择 Redis OSS AUTH。

        1. 对于**安全组**，选择要用于该集群的安全组。*安全组* 充当防火墙来控制对集群的网络访问。您可以为 VPC 使用默认安全组或创建新安全组。

           有关安全组的更多信息，请参阅 *Amazon VPC 用户指南*中的[您的 VPC 的安全组](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html)。

   1. 如果需要定期计划自动备份，请选择**启用自动备份**，然后输入每个自动备份在被自动删除前保留的天数。如果您不希望定期计划自动备份，请清除 **Enable automatic backups** 复选框。不论是哪种情况，您始终可以选择创建手动备份。

      有关备份和还原的更多信息，请参阅[快照和还原](backups.md)。

   1. （可选）指定维护时段。*维护时段* 是每周中 ElastiCache 为您的集群计划系统维护的时间，通常以小时为时间长度。您可以允许 ElastiCache 选择维护时段的日期和时间（*No preference (无首选项)*），或者自行选择日期、时间和持续时间（*Specify maintenance window (指定维护时段)*）。如果您从列表中选择了*指定维护时段*，请为您的维护时段选择*开始日期*、*开始时间*和*持续时间*（以小时为单位）。所有时间均为 UCT 时间。

      有关更多信息，请参阅 [管理 ElastiCache 集群维护](maintenance-window.md)。

   1. （可选）对于 **Logs（日志）**：
      + 在 **Log format（日志格式）**下，选择 **Text（文本）**或 **JSON**。
      + 在**目标类型**下，选择**CloudWatch 日志**或 **Kinesis Fire** hose。
      + 在 “**日志目标**” 下，选择 “**新建**” 并输入您的 CloudWatch 日志组名称或 Firehose 直播名称，或者选择 **“选择现有”**，然后选择您的 CloudWatch 日志日志组名称或 Firehose 直播名称，

   1. 对于**标签**，为了帮助您管理集群和其他 ElastiCache 资源，您可以以标签的形式为每个资源分配自己的元数据。有关更多信息，请参阅 [为资源添加 ElastiCache 标签](Tagging-Resources.md)。

   1. 选择 **Next**（下一步）。

   1. 查看您的所有输入和选择，然后进行任意所需的更正。当您准备好后，选择 **Create**（创建）。

------
#### [ On premises ]

   1. 对于 **On premises**（本地），我们建议您保留 **Auto-failover**（自动失效转移）为启用状态。有关更多信息，请参阅使用多可用[区 ElastiCache 最大限度地缩短 Redis OSS 的停机时间](https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/AutoFailover.html)

   1. 要完成集群创建，请按照[使用 Outposts](https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/ElastiCache-Outposts.html) 中的步骤操作。

------

一旦您的集群状态变为*可用*，您就可以向 Amazon 授予 EC2 访问权限、连接集群并开始使用它。有关更多信息，请参阅[步骤 3：授予对集群的访问权限](SubnetGroups.designing-cluster-pre.valkey.md#GettingStarted.AuthorizeAccess.valkey)和[步骤 4：连接到集群的节点](SubnetGroups.designing-cluster-pre.valkey.md#GettingStarted.ConnectToCacheNode.valkey)。

**重要**  
您的集群变为可用状态后，您便需要为集群处于活动状态的每个小时或分钟支付费用（即使您并未主动使用集群）。要停止此集群产生的费用，您必须将其删除。请参阅[删除中的集群 ElastiCache](Clusters.Delete.md)。

### 创建 Redis OSS（已禁用集群模式）集群（AWS CLI）
<a name="Clusters.Create.CLI.Redis-gs"></a>

**Example**  
下面的 CLI 代码创建一个无副本的 Redis OSS（已禁用集群模式）集群。  
对于 Linux、macOS 或 Unix：  

```
aws elasticache create-cache-cluster \
--cache-cluster-id my-cluster \
--cache-node-type cache.r4.large \
--engine redis \
--num-cache-nodes 1 \
--snapshot-arns arn:aws:s3:::my_bucket/snapshot.rdb
```
对于 Windows：  

```
aws elasticache create-cache-cluster ^
--cache-cluster-id my-cluster ^
--cache-node-type cache.r4.large ^
--engine redis ^
--num-cache-nodes 1 ^
--snapshot-arns arn:aws:s3:::my_bucket/snapshot.rdb
```

要在启用集群模式的情况下工作，请参阅以下主题：
+ 要使用控制台，请参阅[创建 Valkey 或 Redis OSS（已启用集群模式）集群（控制台）](Clusters.Create.md#Clusters.Create.CON.RedisCluster)。
+ 要使用AWS CLI，请参阅[创建 Valkey 或 Redis OSS（已启用集群模式）集群（AWS CLI）](Clusters.Create.md#Clusters.Create.CLI.RedisCluster)。

## 步骤 3：授予对集群的访问权限
<a name="GettingStarted.AuthorizeAccess.redis"></a>

 本节假设您熟悉启动和连接 Amazon EC2 实例。有关更多信息，请参阅 *[Amazon EC2 入门指南](https://docs.aws.amazon.com/AWSEC2/latest/GettingStartedGuide/)*。

所有 ElastiCache 集群均设计为可从 Amazon EC2 实例进行访问。最常见的情况是从同一个亚马逊虚拟私有云 (Amazon VPC) 中的亚马逊 EC2 实例访问 ElastiCache 集群，本练习就是这种情况。

原定设置情况下，对您的集群的网络访问仅限于用于创建集群的账户。必须先授权该 EC2 实例访问集群，然后才能从 EC2 实例连接到集群。所需的步骤取决于您是在 EC2-VPC 还是 EC2-Classic 中启动集群。

最常见的用例是部署在 EC2 实例上的应用程序需要连接到同一 VPC 中的集群。管理同一 VPC 中 EC2 实例和集群之间访问权限的最简单方法是执行以下操作：

1. 为集群创建 VPC 安全组。此安全组可用于限制对集群实例的访问权限。例如，可为此安全组创建自定义规则，允许使用您创建集群时分配给该集群的端口以及将用来访问集群的 IP 地址进行 TCP 访问。

   Redis OSS 集群和复制组的默认端口为 `6379`。
**重要**  
亚马逊 ElastiCache 安全组仅适用于*未*在亚马逊虚拟私有云环境 (VPC) 中运行的集群。如果您正在 Amazon Virtual Private Cloud 中运行，**安全组**将在控制台导航窗格中将不可用。  
如果您在 Amazon VPC 中运行 ElastiCache 节点，则可以使用不同于安全组的 Amazon VPC 安全组来控制对集群的 ElastiCache 访问权限。有关在 Amazon VPC ElastiCache 中使用的更多信息，请参阅 [Amazon VPCs 与 ElastiCache 安全](VPCs.md)

1. 为您的 EC2 实例（Web 和应用程序服务器）创建 VPC 安全组。如果需要，此安全组可以允许通过 VPC 的路由表从 Internet 访问 EC2 实例。例如，您可以在此安全组上设置规则，允许 TCP 通过端口 22 访问 EC2 实例。

1. 在集群的安全组中创建自定义规则，允许来自您为 EC2 实例创建的安全组的连接。这将允许安全组的任何成员均可访问集群。

**注意**  
如果您计划使用 [将 Local Zones 与 ElastiCache 结合使用](Local_zones.md)，请确保已将其启用。当您在该本地区域中创建子网组时，您的 VPC 也会扩展到该本地区域，并且您的 VPC 会将该子网视为任何其他可用区中的任何子网。所有相关网关和路由表都将自动调整。

**在 VPC 安全组中创建允许从另一安全组连接的规则**

1. 登录AWS管理控制台并在 [https://console.aws.amazon.com/](https://console.aws.amazon.com/vpc)vpc 上打开 Amazon VPC 控制台。

1. 在导航窗格中，选择**安全组**。

1. 选择或创建一个要用于集群实例的安全组。在**入站规则**下，选择**编辑入站规则**，然后选择**添加规则**。此安全组将允许访问其他安全组的成员。

1. 从 **Type** 中选择 **Custom TCP Rule**。

   1. 对于 **Port Range**，指定在创建集群时使用的端口。

      Redis OSS 集群和复制组的默认端口为 `6379`。

   1. 在 **Source** 框中，开始键入安全组的 ID。从列表中选择您将用于 Amazon EC2 实例的安全组。

1. 完成后选择 **Save**。  
![\[\]](http://docs.aws.amazon.com/zh_cn/AmazonElastiCache/latest/dg/images/VPC-Rules.png)

启用访问后，您现在就可以连接到节点，如下一部分中所述。

有关从其他 Amazon VPC、不同AWS区域甚至企业网络访问您的ElastiCache 集群的信息，请参阅以下内容：
+ [用于访问 Amazon VPC 中的 ElastiCache 缓存的访问模式](elasticache-vpc-accessing.md)
+ [从外部访问 ElastiCache 资源AWS](accessing-elasticache.md#access-from-outside-aws)

## 步骤 4：连接到集群节点
<a name="GettingStarted.ConnectToCacheNode.redis"></a>

在继续之前，请完成[步骤 3：授予对集群的访问权限](#GettingStarted.AuthorizeAccess.redis)。

本节假设您已经创建了一个 Amazon EC2 实例并且可以连接到该实例。有关如何执行此操作的说明，请参阅《[Amazon EC2 入门指南》](https://docs.aws.amazon.com/AWSEC2/latest/GettingStartedGuide/)。

只有在您授权后，Amazon EC2 实例才能连接到集群节点。

### 查找您的节点端点
<a name="GettingStarted.FindEndpoints.redis"></a>

当您的集群处于*可用*状态并且您已获得访问权限时，您可以登录 Amazon EC2 实例并连接到该集群。为此，您必须先确定端点。

#### 查找 Valkey 或 Redis OSS（已禁用集群模式）集群端点（控制台）
<a name="Endpoints.Find.Redis-gs"></a>

如果 Redis OSS（已禁用集群模式）集群只有一个节点，则使用该节点的端点进行读取和写入操作。如果该集群具有多个节点，则有三种类型的端点，即*主端点*、*读取器端点*和*节点端点*。

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

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

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

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

**查找 Redis OSS（已禁用集群模式）集群的端点**

1. 登录AWS 管理控制台并打开 ElastiCache 控制台，网址为[ https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/)。

1. 从导航窗格中，选择 **Redis OSS 缓存**。

   集群屏幕将显示一个列表，其中包含任何现有 Valkey 或 Redis OSS 无服务器缓存、Redis OSS（已禁用集群模式）和 Redis OSS（已启用集群模式）集群。选择在 [创建 Redis OSS（已禁用集群模式）集群（控制台）](#Clusters.Create.CON.Redis-gs) 部分中创建的集群。

1. 要查找集群的主 and/or 读取器终端节点，请选择集群的名称（不是单选按钮）。  
![\[图片：Redis OSS（已禁用集群模式）集群的主端点\]](http://docs.aws.amazon.com/zh_cn/AmazonElastiCache/latest/dg/images/Reader-Endpoint.png)

   *Redis OSS（已禁用集群模式）集群的主端点和读取器端点*

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

1. 如果 Redis OSS（已禁用集群模式）集群有副本节点，您可以通过选择此集群的名称、然后选择**节点**选项卡来找到集群副本的节点端点。

   此时会显示节点屏幕，其中列出了集群中的每个节点（主节点和副本节点）及其端点。  
![\[图片：Redis OSS（已禁用集群模式）集群的节点端点\]](http://docs.aws.amazon.com/zh_cn/AmazonElastiCache/latest/dg/images/ElastiCache-Endpoints-Redis-Node.png)

   *Redis OSS（已禁用集群模式）集群的节点端点*

1. 将端点复制到剪贴板：

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

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

   端点现已复制到剪贴板。有关使用端点连接到节点的信息，请参阅 [连接到节点](nodes-connecting.md)。

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
```

为进一步了解如何查找您的端点，请参阅您正在运行的引擎和集群类型的相关主题。
+ [查找 ElastiCache 中的缓存连接端点](Endpoints.md)
+ [查找 Valkey 或 Redis OSS（已启用集群模式）集群的端点（控制台）](Endpoints.md#Endpoints.Find.RedisCluster) – 您需要集群的配置端点。
+ [查找端点（AWS CLI）](Endpoints.md#Endpoints.Find.CLI)
+ [查找端点（ElastiCache API）](Endpoints.md#Endpoints.Find.API)

### 连接到 Valkey 或 Redis OSS 集群或复制组（Linux）
<a name="GettingStarted.ConnectToCacheNode.Redis.Linux"></a>

现在您已经有了所需的终端节点，可以登录 EC2 实例并连接到集群或复制组。在以下示例中，您使用 *valkey-cli* 实用工具连接到集群。最新版本的 valkey-cli 还支持连接 encryption/authentication 已启 SSL/TLS 用的集群。

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

**注意**  
此过程包括使用仅供计划外使用的 valkey-cli 实用工具测试连接。有关受支持客户端的列表，请参阅 [Valkey 文档](https://valkey.io/)。有关与 with AWS SDKs 一起使用的示例 ElastiCache，请参见[教程：Python 和 ElastiCache 入门](ElastiCache-Getting-Started-Tutorials.md)。

#### 连接到已禁用集群模式的未加密的集群
<a name="Connecting-to-a-cluster-mode-disabled-unencrypted-cluster.redis"></a>

1. 运行以下命令以连接到集群，并将*primary-endpoint*和*port number*替换为集群的终端节点和您的端口号。（Valkey 和 Redis OSS 的默认端口为 6379。）

   ```
   src/valkey-cli -h primary-endpoint -p port number
   ```

   命令提示符的结果类似于以下内容：

   ```
   primary-endpoint:port number
   ```

1. 现在您就可以运行 Valkey 和 Redis OSS 命令了。

   ```
   set x Hello
   OK
   
   get x
   "Hello"
   ```

#### 连接到已启用集群模式的未加密集群
<a name="Connecting-to-a-cluster-mode-enabled-unencrypted-cluster.redis"></a>

1. 运行以下命令以连接到集群，并将*configuration-endpoint*和*port number*替换为集群的终端节点和您的端口号。（Valkey 和 Redis OSS 的默认端口为 6379。）

   ```
   src/valkey-cli -h configuration-endpoint -c -p port number
   ```
**注意**  
在上述命令中，选项 -c 可遵循 [-ASK 和 -MOVED 重新导向](https://redis.io/topics/cluster-spec)启用集群模式。

   命令提示符的结果类似于以下内容：

   ```
   configuration-endpoint:port number
   ```

1. 现在您就可以运行 Valkey 和 Redis OSS 命令了。请注意，重新导向发生是因为您使用 -c 选项启用了它。如果未启用重新导向，则命令将返回 MOVED 错误。有关 MOVED 错误的更多信息，请参阅[集群规范](https://valkey.io/topics/cluster-spec)。

   ```
   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"
   ```

#### 连接到 Encryption/Authentication 已启用的集群
<a name="Connecting-to-an-Encryption-Authentication-enabled-cluster.redis"></a>

默认情况下，valkey-cli 在连接到 Valkey 和 Redis OSS 时使用未加密的 TCP 连接。该选项 SSL/TLS 在编译 valkey-cli 时`BUILD_TLS=yes`启用，如上一节所示。[下载并设置命令行访问权限](set-up.md#Download-and-install-cli)启用 AUTH 是可选的。但是，您必须启用传输过程中的加密才能启用 AUTH。有关 ElastiCache 加密和身份验证的更多详细信息，请参阅[ElastiCache 传输中加密 (TLS)](in-transit-encryption.md)。

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

在以下示例中，请务必使用集群*port number*的终端节点和端口号替换*cluster-endpoint*和。（Redis OSS 的默认端口为 6379。）

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

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

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

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

```
src/valkey-cli -h cluster-endpoint --tls -p port number
```

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

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

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

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

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

连接到集群后，您可以为未加密集群运行上述示例中的 Valkey 或 Redis OSS 命令。

#### valkey-cli 或 redis-CLI 的替代方案
<a name="Redis-cli-alternative"></a>

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

以下示例连接到启用了加密 and/or 身份验证的集群模式已禁用的集群：

```
openssl s_client -connect cluster-endpoint:port number
```

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

```
Auth your-password
```

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

```
telnet cluster-endpoint port number
```

### 连接到 Valkey 或 Redis OSS 集群或复制组（Windows）
<a name="GettingStarted.ConnectToCacheNode.Redis.Windows"></a>

要使用 Valkey 或 Redis OSS CLI 从 EC2 Windows 实例连接到集群，你必须下载 v *alkey-cli* 包并使用 *valkey-cli.exe* 从 Windows 实例连接到 Valkey 或 Redis OSS 集群。 EC2 

在以下示例中，您使用 *valkey-cli* 实用工具连接到未启用加密的运行 Valkey 或 Redis OSS 的集群。有关 Valkey 和可用命令的更多信息，请参阅 Valkey 网站上的 [Valkey 命令](http://valkey.io/commands)。

**使用 *valkey-cli* 连接未启用加密的 Valkey 或 Redis OSS 集群**

1. 使用您选择的连接实用程序连接到您的 Amazon EC2 实例。有关如何连接亚马逊 EC2 实例的说明，请参阅《[亚马逊 EC2 入门指南》](https://docs.aws.amazon.com/AWSEC2/latest/GettingStartedGuide/)。

1. 将链接复制并粘贴到互联网浏览器[https://github.com/microsoftarchive/redis/releases/download/win-3.0.504/Redis-x64-3.0.504.zip](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](https://github.com/microsoftarchive/redis/releases/tag/win-3.0.504)

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

   打开命令提示符并更改为 Valkey 目录，然后运行命令 `c:\Valkey>valkey-cli -h Valkey_Cluster_Endpoint -p 6379`。

   例如：

   ```
   c:\Valkey>valkey-cli -h cmd.xxxxxxx.ng.0001.usw2.cache.amazonaws.com -p 6379
   ```

1. 运行 Valkey 或 Redis OSS 命令。

    您现已连接至集群并且可以按以下方式运行 Valkey 或 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 valkey-cli
   ```