

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

# 查找 ElastiCache 中的缓存连接端点
<a name="Endpoints"></a>

您的应用程序使用端点连接到 ElastiCache 集群。端点是节点或集群的唯一的地址。

您也可以通过 AWS PrivateLink 创建接口 VPC 端点，在 VPC 和 ElastiCache API 端点之间建立私有连接。有关更多信息，请参阅 [ElastiCache API 和接口 VPC 终端节点 (AWS PrivateLink)](elasticache-privatelink.md)。

**在 Valkey 或 Redis OSS 上使用哪些端点**
+ 对于**独立节点**，使用该节点的端点进行读取和写入操作。

   
+ 对于 **Valkey 或者 Valkey 或 Redis OSS（已禁用集群模式）集群**，使用*主端点*执行所有写入操作。使用*读取器端点* 将在所有只读副本之间均匀地分配指向端点的传入连接。使用单独的*节点端点* 进行读取操作（在 API/CLI 中，它们被称作读取端点）。

   
+ 对于 **Valkey 或 Redis OSS（已启用集群模式）集群**，使用集群的*配置端点*执行所有支持已启用集群模式命令的操作。您必须使用支持 Valkey 集群或 Redis OSS 集群（运行 Redis OSS 3.2 及更高版本）的客户端。您仍可以从独立的节点端点进行读取（在 API/CLI 中，它们被称作读取端点）。

   

以下部分将引导您发现正在运行的引擎所需的端点。

**哪些端点可用于 Memcached。**

对于**适用于 Memcached 的 ElastiCache 无服务器缓存**，只需从控制台获取集群端点 DNS 和端口。

从 AWS CLI 中，使用 `describe-serverless-caches` 命令获取端点信息。

Linux

```
aws elasticache describe-serverless-caches --serverless-cache-name CacheName
```

Windows

```
aws elasticache describe-serverless-caches --serverless-cache-name CacheName
```

上述操作的输出类似于以下内容（JSON 格式）：

```
{
    "ServerlessCaches": [
        {
            "ServerlessCacheName": "serverless-memcached",
            "Description": "test",
            "CreateTime": 1697659642.136,
            "Status": "available",
            "Engine": "memcached",
            "MajorEngineVersion": "1.6",
            "FullEngineVersion": "21",
            "SecurityGroupIds": [
                "sg-083eda453e1e51310"
            ],
            "Endpoint": {
                "Address": "serverless-memcached-01.amazonaws.com",
                "Port":11211
            },
            "ARN": "<the ARN>",
            "SubnetIds": [
                "subnet-0cf759df15bd4dc65",
                "subnet-09e1307e8f1560d17"
            ],
            "SnapshotRetentionLimit": 0,
            "DailySnapshotTime": "03:00"
        }
    ]
}
```

**对基于 Memcached 集群的实例**，如果您使用自动发现，则可以使用集群的*配置端点*来配置您的 Memcached 客户端。这意味着您必须使用支持 Automatic Discovery 的客户端。

如果您不使用 Automatic Discovery，则必须对客户端进行配置，以便针对读取和写入使用不同的节点端点。此外，在添加或删除节点时，您还必须跟踪它们的情况。

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

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

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

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

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

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

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

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

1. 在导航窗格中，选择 **Valkey 集群**或 **Redis OSS 集群**。

   集群屏幕将显示 Valkey 或者 Valkey 或 Redis OSS（已禁用集群模式）和 Valkey 或 Redis OSS（已启用集群模式）集群的列表。

1. 要查找集群的主端点和/或读取器端点，请选中集群的名称（而不是其左侧的按钮）。  
![\[图片：Valkey 或者 Valkey 或 Redis OSS（已禁用集群模式）集群的主端点\]](http://docs.aws.amazon.com/zh_cn/AmazonElastiCache/latest/dg/images/Reader-Endpoint.png)

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

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

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

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

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

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

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

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

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

Valkey 或者 Valkey 或 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
```

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

Valkey 或 Redis OSS（已启用集群模式）集群有一个单配置端点。通过连接到配置端点，您的应用程序可以查找集群中每个分片的主端点和读取端点。

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

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

1. 在导航窗格中，选择 **Valkey 集群**或 **Redis OSS 集群**。

   集群屏幕随即出现，其中显示集群的列表。选择您想要连接到的集群。

1. 要查找集群的配置端点，请选择集群的名称（不是单选按钮）。

1. **Cluster details**（集群详细信息）下将显示 **Configuration endpoint**（配置端点）。要复制它，请选择位于端点左侧的 *copy*（复制）图标。

## 查找集群的端点（控制台）（Memcached）
<a name="Endpoints.Find.Memcached"></a>

所有 Memcached 端点都是读写端点。要连接到 Memcached 集群中的节点，您的应用程序可以使用每个节点的端点或将集群的配置端点与 Automatic Discovery 结合使用。要使用 Automatic Discovery，您必须使用支持 Automatic Discovery 的客户端。

在使用 Automatic Discovery 时，您的客户端应用程序将使用配置端点连接到 Memcached 集群。当您通过添加或移除节点来扩展集群，应用程序将自动“获知”集群中的所有节点并能够连接到其中任一节点。如果没有 Automatic Discovery，应用程序将必须执行此操作，否则，您在每次添加或移除节点时，必须手动更新应用程序中的端点。

要复制端点，请直接选择端点地址前面的复制图标。有关使用端点连接到节点的信息，请参阅 [连接到 Memcached 节点](nodes-connecting.md#nodes-connecting.mem)。

配置端点和节点端点看上非常相似。不同之处以**粗体** 形式突出显示。

```
myclustername.xxxxxx.cfg.usw2.cache.amazonaws.com:port   # configuration endpoint contains "cfg"
myclustername.xxxxxx.0001.usw2.cache.amazonaws.com:port  # node endpoint for node 0001
```

**重要**  
如果您选择为 Memcached 配置端点创建别名记录，以使自动发现客户端可以识别别名记录作为配置端点，则必须在别名记录中包含 `.cfg.`。

## 查找端点（AWS CLI）
<a name="Endpoints.Find.CLI"></a>

对于 Memcached，您可以使用 AWS CLI for Amazon ElastiCache 来搜索节点和集群的端点。

对于 Redis OSS，您可以使用 AWS CLI for Amazon ElastiCache 来搜索节点、集群和复制组的端点。

**Topics**
+ [查找节点和集群的端点（AWS CLI）](#Endpoints.Find.CLI.Nodes)
+ [查找 Valkey 或 Redis OSS 复制组的端点（AWS CLI）](#Endpoints.Find.CLI.ReplGroups)

### 查找节点和集群的端点（AWS CLI）
<a name="Endpoints.Find.CLI.Nodes"></a>

您可以使用 AWS CLI，通过 `describe-cache-clusters` 命令查找集群及其节点的端点。对于 Valkey 或 Redis OSS 集群，此命令将返回集群端点。对于 Memcached 集群，此命令将返回配置端点。如果包含可选参数 `--show-cache-node-info`，则此命令还将返回集群中的单个节点的端点。

**Example**  
以下命令会检索 Memcached 集群 *mycluster* 的配置端点（`ConfigurationEndpoint`）和单个节点端点（`Endpoint`）。  
对于 Linux、macOS 或 Unix：  

```
aws elasticache describe-cache-clusters \
    --cache-cluster-id mycluster \
    --show-cache-node-info
```
对于 Windows：  

```
aws elasticache describe-cache-clusters ^
    --cache-cluster-id mycluster ^
    --show-cache-node-info
```
上面的操作输出类似以下的内容（JSON 格式）。  

```
{
   "CacheClusters": [
   {
       "Engine": "memcached", 
       "CacheNodes": [
          {
             "CacheNodeId": "0001", 
             "Endpoint": {
                "Port": 11211, 
                "Address": "mycluster.amazonaws.com"
             }, 
                "CacheNodeStatus": "available", 
                "ParameterGroupStatus": "in-sync", 
                "CacheNodeCreateTime": "2016-09-22T21:30:29.967Z", 
                "CustomerAvailabilityZone": "us-west-2b"
          }, 
          {
             "CacheNodeId": "0002", 
             "Endpoint": {
                "Port": 11211, 
                "Address": "mycluster.amazonaws.com"
             }, 
                "CacheNodeStatus": "available", 
                "ParameterGroupStatus": "in-sync", 
                "CacheNodeCreateTime": "2016-09-22T21:30:29.967Z", 
                "CustomerAvailabilityZone": "us-west-2b"
          }, 
          {
                "CacheNodeId": "0003", 
                "Endpoint": {
                   "Port": 11211, 
                   "Address": "mycluster.amazonaws.com"
                }, 
                   "CacheNodeStatus": "available", 
                   "ParameterGroupStatus": "in-sync", 
                   "CacheNodeCreateTime": "2016-09-22T21:30:29.967Z", 
                   "CustomerAvailabilityZone": "us-west-2b"
          }
       ], 
       "CacheParameterGroup": {
       "CacheNodeIdsToReboot": [], 
       "CacheParameterGroupName": "default.memcached1.4", 
       "ParameterApplyStatus": "in-sync"
            }, 
            "CacheClusterId": "mycluster", 
            "PreferredAvailabilityZone": "us-west-2b", 
            "ConfigurationEndpoint": {
                "Port": 11211, 
                "Address": "mycluster.amazonaws.com"
            }, 
            "CacheSecurityGroups": [], 
            "CacheClusterCreateTime": "2016-09-22T21:30:29.967Z", 
            "AutoMinorVersionUpgrade": true, 
            "CacheClusterStatus": "available", 
            "NumCacheNodes": 3, 
            "ClientDownloadLandingPage": "https://console.aws.amazon.com/elasticache/home#client-download:", 
            "CacheSubnetGroupName": "default", 
            "EngineVersion": "1.4.24", 
            "PendingModifiedValues": {}, 
            "PreferredMaintenanceWindow": "mon:09:00-mon:10:00", 
            "CacheNodeType": "cache.m4.large",
             "DataTiering": "disabled"
        }
    ]   
}
```
如果您选择为 Memcached 配置端点创建别名记录，以使自动发现客户端可以识别别名记录作为配置端点，则必须在别名记录中包含 `.cfg.`。例如，php.ini 文件中的 `mycluster.cfg.local` 参数的 `session.save_path`。

**Example**  
对于 Valkey 和 Redis OSS，以下命令会检索单节点集群 *mycluster* 的集群信息。  
参数 `--cache-cluster-id` 可与 Redis 复制组中的单节点 Valkey 或 Redis OSS（已禁用集群模式）集群 ID 或特定节点 ID 配合使用。复制组的 `--cache-cluster-id` 是一个四位值，例如 `0001`。如果 `--cache-cluster-id` 是复制组中集群（节点）的 ID，输出中会包含 `replication-group-id`。
对于 Linux、macOS 或 Unix：  

```
aws elasticache describe-cache-clusters \
    --cache-cluster-id redis-cluster \
    --show-cache-node-info
```
对于 Windows：  

```
aws elasticache describe-cache-clusters ^
    --cache-cluster-id redis-cluster ^
    --show-cache-node-info
```
上面的操作输出类似以下的内容（JSON 格式）。  

```
{
    "CacheClusters": [
        {
            "CacheClusterStatus": "available",
            "SecurityGroups": [
                {
                    "SecurityGroupId": "sg-77186e0d",
                    "Status": "active"
                }
            ],
            "CacheNodes": [
                {
                    "CustomerAvailabilityZone": "us-east-1b",
                    "CacheNodeCreateTime": "2018-04-25T18:19:28.241Z",
                    "CacheNodeStatus": "available",
                    "CacheNodeId": "0001",
                    "Endpoint": {
                        "Address": "redis-cluster.amazonaws.com",
                        "Port": 6379
                    },
                    "ParameterGroupStatus": "in-sync"
                }
            ],
            "AtRestEncryptionEnabled": false,
            "CacheClusterId": "redis-cluster",
            "TransitEncryptionEnabled": false,
            "CacheParameterGroup": {
                "ParameterApplyStatus": "in-sync",
                "CacheNodeIdsToReboot": [],
                "CacheParameterGroupName": "default.redis3.2"
            },
            "NumCacheNodes": 1,
            "PreferredAvailabilityZone": "us-east-1b",
            "AutoMinorVersionUpgrade": true,
            "Engine": "redis",
            "AuthTokenEnabled": false,
            "PendingModifiedValues": {},
            "PreferredMaintenanceWindow": "tue:08:30-tue:09:30",
            "CacheSecurityGroups": [],
            "CacheSubnetGroupName": "default",
            "CacheNodeType": "cache.t2.small",
             "DataTiering": "disabled"
            "EngineVersion": "3.2.10",
            "ClientDownloadLandingPage": "https://console.aws.amazon.com/elasticache/home#client-download:",
            "CacheClusterCreateTime": "2018-04-25T18:19:28.241Z"
        }
    ]
}
```

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

### 查找 Valkey 或 Redis OSS 复制组的端点（AWS CLI）
<a name="Endpoints.Find.CLI.ReplGroups"></a>

您可以使用 AWS CLI，通过 `describe-replication-groups` 命令查找复制组及其集群的端点。此命令将返回复制组的主端点、复制组中所有集群（节点）及其端点的列表以及读取器端点。

以下操作检索复制组 `myreplgroup` 的主端点和读取器端点。将主端点用于所有写入操作。

```
aws elasticache describe-replication-groups \
    --replication-group-id myreplgroup
```

对于 Windows：

```
aws elasticache describe-replication-groups ^
    --replication-group-id myreplgroup
```

该操作输出类似以下的内容（JSON 格式）。

```
{
   "ReplicationGroups": [
     {
       "Status": "available", 
       "Description": "test", 
       "NodeGroups": [
         {
            "Status": "available", 
               "NodeGroupMembers": [
                  {
                     "CurrentRole": "primary", 
                     "PreferredAvailabilityZone": "us-west-2a", 
                     "CacheNodeId": "0001", 
                     "ReadEndpoint": {
                        "Port": 6379, 
                        "Address": "myreplgroup-001.amazonaws.com"
                     }, 
                     "CacheClusterId": "myreplgroup-001"
                  }, 
                  {
                     "CurrentRole": "replica", 
                     "PreferredAvailabilityZone": "us-west-2b", 
                     "CacheNodeId": "0001", 
                     "ReadEndpoint": {
                        "Port": 6379, 
                        "Address": "myreplgroup-002.amazonaws.com"
                     }, 
                     "CacheClusterId": "myreplgroup-002"
                  }, 
                  {
                     "CurrentRole": "replica", 
                     "PreferredAvailabilityZone": "us-west-2c", 
                     "CacheNodeId": "0001", 
                     "ReadEndpoint": {
                        "Port": 6379, 
                        "Address": "myreplgroup-003.amazonaws.com"
                     }, 
                     "CacheClusterId": "myreplgroup-003"
                  }
               ], 
               "NodeGroupId": "0001", 
               "PrimaryEndpoint": {
                  "Port": 6379, 
                  "Address": "myreplgroup.amazonaws.com"
               },
               "ReaderEndpoint": {
                  "Port": 6379, 
                  "Address": "myreplgroup-ro.amazonaws.com"
               }
            }
         ], 
         "ReplicationGroupId": "myreplgroup", 
         "AutomaticFailover": "enabled", 
         "SnapshottingClusterId": "myreplgroup-002", 
         "MemberClusters": [
            "myreplgroup-001", 
            "myreplgroup-002", 
            "myreplgroup-003"
         ], 
         "PendingModifiedValues": {}
      }
   ]
}
```

有关更多信息，请参阅 *AWS CLI 命令参考*中的 [describe-replication-groups](https://docs.aws.amazon.com/cli/latest/reference/elasticache/describe-replication-groups.html)。

## 查找端点（ElastiCache API）
<a name="Endpoints.Find.API"></a>

对于 Memcached，您可以使用 Amazon ElastiCache API 来搜索节点和集群的端点。

对于 Redis OSS，您可以使用 Amazon ElastiCache API 来搜索节点、集群和复制组的端点。

**Topics**
+ [查找节点和集群的端点（ElastiCache API）](#Endpoints.Find.API.Nodes)
+ [查找 Valkey 或 Redis OSS 复制组的端点（ElastiCache API）](#Endpoints.Find.API.ReplGroups)

### 查找节点和集群的端点（ElastiCache API）
<a name="Endpoints.Find.API.Nodes"></a>

您可以使用 ElastiCache API，通过 `DescribeCacheClusters` 操作查找集群及其节点的端点。对于 Valkey 或 Redis OSS 集群，此命令将返回集群端点。对于 Memcached 集群，此命令将返回配置端点。如果包含可选参数 `ShowCacheNodeInfo`，则此操作还将返回集群中的各个节点的端点。

**Example**  
对于 Memcached，以下命令会检索 Memcached 集群 *mycluster* 的配置端点（`ConfigurationEndpoint`）和单个节点端点（`Endpoint`）。  

```
https://elasticache.us-west-2.amazonaws.com/
    ?Action=DescribeCacheClusters
    &CacheClusterId=mycluster
    &ShowCacheNodeInfo=true
    &SignatureVersion=4
    &SignatureMethod=HmacSHA256
    &Timestamp=20150202T192317Z
    &Version=2015-02-02
    &X-Amz-Credential=<credential>
```
如果您选择为 Memcached 配置端点创建别名记录，以使自动发现客户端可以识别别名记录作为配置端点，则必须在别名记录中包含 `.cfg.`。例如，php.ini 文件中的 `mycluster.cfg.local` 参数的 `session.save_path`。

### 查找 Valkey 或 Redis OSS 复制组的端点（ElastiCache API）
<a name="Endpoints.Find.API.ReplGroups"></a>

您可以使用 ElastiCache API，以通过 `DescribeReplicationGroups` 操作查找复制组及其集群的端点。此操作将返回复制组的主端点、复制组中所有集群及其端点的列表以及读取器端点。

以下操作检索复制组 `myreplgroup` 的主端点（PrimaryEndpoint）、读取器端点（ReaderEndpoint）和各个节点端点（ReadEndpoint）。将主端点用于所有写入操作。

```
https://elasticache.us-west-2.amazonaws.com/
    ?Action=DescribeReplicationGroups
    &ReplicationGroupId=myreplgroup
    &SignatureVersion=4
    &SignatureMethod=HmacSHA256
    &Timestamp=20150202T192317Z
    &Version=2015-02-02
    &X-Amz-Credential=<credential>
```

有关更多信息，请参阅 [DescribeReplicationGroups](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_DescribeReplicationGroups.html)。