查找 ElastiCache 中的缓存连接端点
您的应用程序使用端点连接到 ElastiCache 集群。端点是节点或集群的唯一的地址。
您也可以通过 Amazon PrivateLink 创建接口 VPC 端点,在 VPC 和 ElastiCache API 端点之间建立私有连接。有关更多信息,请参阅 ElastiCache API 和接口 VPC 端点(Amazon PrivateLink)。
在 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 和端口。
从 Amazon 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 或者 Valkey 或 Redis OSS(已禁用集群模式)集群只有一个节点,则使用该节点的端点进行读取和写入操作。如果 Valkey 或者 Valkey 或 Redis OSS(已禁用集群模式)集群具有多个节点,则有三种类型的端点,即主端点、读取器端点和节点端点。
主端点是一个 DNS 名称,始终解析为集群中的主节点。主端点不受集群更改的影响,如将只读副本提升为主角色。对于写入活动,我们建议您的应用程序连接到主端点。
读取器端点将在 ElastiCache for Redis OSS 集群中的所有只读副本之间均匀地分配指向端点的传入连接。应用程序何时创建连接或应用程序如何(重复)使用连接等附加因素将决定流量分配。读取器端点会在添加或删除副本时实时跟踪集群更改。您可以将 ElastiCache for Redis OSS 集群的多个只读副本置于不同的 Amazon 可用区(AZ)中以确保读取器端点的高可用性。
注意
读取器端点不是负载均衡器。它是一个 DNS 记录,将以循环方式解析为副本节点之一的 IP 地址。
对于读取活动,应用程序还可以连接到集群中的任何节点。与主端点不同,节点端点会解析为特定端点。如果您在您的集群中进行更改(例如添加或删除副本),则必须在您的应用程序中更新节点端点。
查找 Valkey 或者 Valkey 或 Redis OSS(已禁用集群模式)集群端点
-
登录 Amazon Web Services 管理控制台 并打开 ElastiCache 控制台(https://console.aws.amazon.com/elasticache/
)。 -
在导航窗格中,选择 Valkey 集群或 Redis OSS 集群。
集群屏幕将显示 Valkey 或者 Valkey 或 Redis OSS(已禁用集群模式)和 Valkey 或 Redis OSS(已启用集群模式)集群的列表。
-
要查找集群的主端点和/或读取器端点,请选中集群的名称(而不是其左侧的按钮)。
Valkey 或者 Valkey 或 Redis OSS(已禁用集群模式)集群的主端点和读取器端点
如果该集群只有一个节点,则没有主端点,您可以继续下一步。
-
如果 Valkey 或者 Valkey 或 Redis OSS(已禁用集群模式)集群有副本节点,您可以通过选择该集群的名称,然后选择节点选项卡,找到该集群的副本节点端点。
此时会显示节点屏幕,其中列出了集群中的每个节点(主节点和副本节点)及其端点。
Valkey 或者 Valkey 或 Redis OSS(已禁用集群模式)集群的节点端点
-
将端点复制到剪贴板:
-
逐一找到要复制的端点。
-
直接选择端点前面的复制图标。
端点现已复制到剪贴板。有关使用端点连接到节点的信息,请参阅 连接到 Memcached 节点。
-
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:6379Valkey 或 Redis OSS(已启用集群模式)集群有一个单配置端点。通过连接到配置端点,您的应用程序可以查找集群中每个分片的主端点和读取端点。
查找 Valkey 或 Redis OSS(已启用集群模式)集群的端点
-
登录 Amazon Web Services 管理控制台 并打开 ElastiCache 控制台(https://console.aws.amazon.com/elasticache/
)。 -
在导航窗格中,选择 Valkey 集群或 Redis OSS 集群。
集群屏幕随即出现,其中显示集群的列表。选择您想要连接到的集群。
-
要查找集群的配置端点,请选择集群的名称(不是单选按钮)。
-
Cluster details(集群详细信息)下将显示 Configuration endpoint(配置端点)。要复制它,请选择位于端点左侧的 copy(复制)图标。
所有 Memcached 端点都是读写端点。要连接到 Memcached 集群中的节点,您的应用程序可以使用每个节点的端点或将集群的配置端点与 Automatic Discovery 结合使用。要使用 Automatic Discovery,您必须使用支持 Automatic Discovery 的客户端。
在使用 Automatic Discovery 时,您的客户端应用程序将使用配置端点连接到 Memcached 集群。当您通过添加或移除节点来扩展集群,应用程序将自动“获知”集群中的所有节点并能够连接到其中任一节点。如果没有 Automatic Discovery,应用程序将必须执行此操作,否则,您在每次添加或移除节点时,必须手动更新应用程序中的端点。
要复制端点,请直接选择端点地址前面的复制图标。有关使用端点连接到节点的信息,请参阅 连接到 Memcached 节点。
配置端点和节点端点看上非常相似。不同之处以粗体 形式突出显示。
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.。
对于 Memcached,您可以使用 Amazon CLI for Amazon ElastiCache 来搜索节点和集群的端点。
对于 Redis OSS,您可以使用 Amazon CLI for Amazon ElastiCache 来搜索节点、集群和复制组的端点。
查找节点和集群的端点(Amazon CLI)
您可以使用 Amazon CLI,通过 describe-cache-clusters 命令查找集群及其节点的端点。对于 Valkey 或 Redis OSS 集群,此命令将返回集群端点。对于 Memcached 集群,此命令将返回配置端点。如果包含可选参数 --show-cache-node-info,则此命令还将返回集群中的单个节点的端点。
以下命令会检索 Memcached 集群 mycluster 的配置端点(ConfigurationEndpoint)和单个节点端点(Endpoint)。
对于 Linux、macOS 或 Unix:
aws elasticache describe-cache-clusters \ --cache-cluster-idmycluster\ --show-cache-node-info
对于 Windows:
aws elasticache describe-cache-clusters ^ --cache-cluster-idmycluster^ --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.localsession.save_path。
对于 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-idredis-cluster\ --show-cache-node-info
对于 Windows:
aws elasticache describe-cache-clusters ^ --cache-cluster-idredis-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。
查找 Valkey 或 Redis OSS 复制组的端点(Amazon CLI)
您可以使用 Amazon CLI,通过 describe-replication-groups 命令查找复制组及其集群的端点。此命令将返回复制组的主端点、复制组中所有集群(节点)及其端点的列表以及读取器端点。
以下操作检索复制组 myreplgroup 的主端点和读取器端点。将主端点用于所有写入操作。
aws elasticache describe-replication-groups \ --replication-group-idmyreplgroup
对于 Windows:
aws elasticache describe-replication-groups ^ --replication-group-idmyreplgroup
该操作输出类似以下的内容(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": {}
}
]
}
有关更多信息,请参阅 Amazon CLI 命令参考中的 describe-replication-groups。
对于 Memcached,您可以使用 Amazon ElastiCache API 来搜索节点和集群的端点。
对于 Redis OSS,您可以使用 Amazon ElastiCache API 来搜索节点、集群和复制组的端点。
查找节点和集群的端点(ElastiCache API)
您可以使用 ElastiCache API,通过 DescribeCacheClusters 操作查找集群及其节点的端点。对于 Valkey 或 Redis OSS 集群,此命令将返回集群端点。对于 Memcached 集群,此命令将返回配置端点。如果包含可选参数 ShowCacheNodeInfo,则此操作还将返回集群中的各个节点的端点。
对于 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.localsession.save_path。
查找 Valkey 或 Redis OSS 复制组的端点(ElastiCache API)
您可以使用 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。