在中查找连接端点 ElastiCache - 亚马逊 ElastiCache
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

在中查找连接端点 ElastiCache

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

哪些端点可以与 Valkey 或 Redis 配合使用 OSS
  • 独立节点,使用节点的终端节点进行读取和写入操作。

     

  • Valkery、Valkey 或 RedisOSS(已禁用集群模式)集群,所有写入操作都使用主终端节点。使用读取器端点 将在所有只读副本之间均匀地分配指向端点的传入连接。使用单个节点终端节点进行读取操作(在 API /中,CLI这些终端节点被称为读取端点)。

     

  • Valkey 或 RedisOSS(已启用集群模式)集群使用集群的配置终端节点执行所有支持启用集群模式的命令的操作。你必须使用支持 Valkey Cluster 或 Redis 集OSS群 (Redis 3.2) 的客户端。OSS您仍然可以从单个节点端点读取(在 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,则必须对客户端进行配置,以便针对读取和写入使用不同的节点端点。此外,在添加或删除节点时,您还必须跟踪它们的情况。

如果 Valkery、Valkey 或 RedisOSS(已禁用集群模式)集群只有一个节点,则使用该节点的终端节点进行读取和写入。如果 Valkery、Valkey 或 RedisOSS(已禁用集群模式)集群有多个节点,则有三种类型的终端节点:主终端节点、读取器终端节点和节点终端节点。

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

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

注意

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

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

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

  2. 在导航窗格中,选择 Valkey 集群或 Redis OSS 集群

    集群屏幕将出现,其中列出了 Valkery、Valkey 或 RedisOSS(已禁用集群模式)以及 Valkey 或 RedisOSS(已启用集群模式)集群。

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

    图片:Valkery、Valkey 或 RedisOSS(已禁用集群模式)集群的主终端节点

    Valkery、Valkey 或 RedisOSS(已禁用集群模式)集群的主终端节点和读取器终端节点

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

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

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

    图片:Valkery、Valkey 或 RedisOSS(已禁用集群模式)集群的节点终端节点

    Valkery、Valkey 或 RedisOSS(已禁用集群模式)集群的节点终端节点

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

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

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

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

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

未启用传输中加密

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 或 RedisOSS(已启用集群模式)集群只有一个配置终端节点。通过连接到配置端点,您的应用程序可以查找集群中每个分片的主端点和读取端点。

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

  2. 在导航窗格中,选择 Valkey 集群或 Redis OSS 集群

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

  3. 要查找集群的配置端点,请选择集群的名称(不是单选按钮)。

  4. 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 配置终端节点创建,则为了让自动发现客户端识别CNAME为配置端点,则必须包含.cfg.在CNAME。CNAME

对于 Memcached,您可以使用 f Amazon CLI or Amazon ElastiCache 来发现节点和集群的终端节点。

对于 Redis,您可以使用 fo Amazon CLI r Amazon ElastiCache 来发现节点、集群和复制组的终端节点。

查找节点和集群的端点(Amazon CLI)

您可以使用describe-cache-clusters命令 Amazon CLI 来发现集群及其节点的终端节点。对于 Valkey 或 Redis OSS 集群,该命令将返回集群终端节点。对于 Memcached 集群,此命令将返回配置端点。如果包含可选参数 --show-cache-node-info,则此命令还将返回集群中的单个节点的端点。

以下命令会检索 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 配置终端节点创建,则为了使自动发现客户端能够将它识别CNAME为配置端点,则必须包含.cfg.在CNAME。CNAME例如,php.ini 文件中的 session.save_path 参数的 mycluster.cfg.local

对于 Valkey 和 RedisOSS,以下命令检索单节点集群 mycluster 的集群信息。

重要

该参数--cache-cluster-id可以与单节点 Valkey 或 RedisOSS(已禁用集群模式)集群 ID 或复制组中的特定节点 ID 一起使用。复制组--cache-cluster-id的值是一个 4 位数的值,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

查找 Valkey 或 Redis OSS 复制组的终端节点 ()Amazon CLI

您可以使用describe-replication-groups命令 Amazon CLI 来发现复制组及其集群的终端节点。此命令将返回复制组的主端点、复制组中所有集群(节点)及其端点的列表以及读取器端点。

以下操作检索复制组 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": {} } ] }

有关更多信息,请参阅《Amazon CLI 命令参考describe-replication-groups中的。

对于 Memcached,您可以使用 Amazon ElastiCache API 来发现节点和集群的终端节点。

对于 Redis,您可以使用 Amazon ElastiCache API 来发现节点、集群和复制组的终端节点。

查找节点和集群的终端节点 (ElastiCache API)

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

对于 Memcached,以下命令检索 Memcached 集群 mycluster 的配置终端节点 (ConfigurationEndpointEndpoint) 和单个节点终端节点 ()。

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 配置终端节点创建,则为了使自动发现客户端能够将它识别CNAME为配置端点,则必须包含.cfg.在CNAME。CNAME例如,php.ini 文件中的 session.save_path 参数的 mycluster.cfg.local

查找 Valkey 或 Redis OSS 复制组的终端节点 () ElastiCache API

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

以下操作检索复制组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