本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
您的應用程式會使用端點連線至您的 ElastiCache 叢集。端點是節點或叢集的唯一位址。
要與 Valkey 或 Redis 搭配使用的端點 OSS
-
獨立節點,同時使用節點的端點進行讀取和寫入操作。
-
Valkery 或 Valkey 或 Redis OSS(停用叢集模式) 叢集,請使用主要端點進行所有寫入操作。使用「讀取器端點」來將傳入連線平均分散在所有讀取複本間的端點中。使用個別節點端點進行讀取操作 (在 API/CLI 中稱為讀取端點)。
-
Valkey 或 Redis OSS(啟用叢集模式) 叢集,針對支援啟用叢集模式命令的所有操作使用叢集的組態端點。您必須使用支援 Valkey Cluster 或 Redis 3.2 OSS 及更高版本的 Redis OSS Cluster 的用戶端。您仍然可以從個別節點端點讀取 (在 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,則必須將用戶端設定為使用個別的節點端點以進行讀取和寫入。您也必須在新增和移除節點時追蹤這些端點。
如果 Valkery 或 Valkey 或 Redis OSS(停用叢集模式) 叢集只有一個節點,則節點的端點會同時用於讀取和寫入。如果 Valkery 或 Valkey 或 Redis OSS(停用叢集模式) 叢集具有多個節點,則有三種端點類型:主要端點、讀取器端點和節點端點。
主要端點是一律解析為叢集中主要節點DNS的名稱。主要端點不會受到您叢集變更的影響 (例如將僅供讀取複本提升至主要角色)。針對寫入活動,我們建議您的應用程式連線到主要端點。
讀取器端點會在 ElastiCache 適用於 Redis OSS叢集的所有僅供讀取複本之間平均分割端點的傳入連線。其他因素 (例如應用程式建立連線或應用程式如何 (重新) 使用連線) 將決定流量分佈。隨著複本的新增或移除,讀取器端點會跟著叢集的變更即時保持在最新狀態。您可以將 ElastiCache for Redis OSS叢集的多個僅供讀取複本放在不同的 AWS 可用區域 (AZ),以確保讀取器端點的高可用性。
注意
讀取者端點並非負載平衡器。這是一個DNS記錄,會以循環方式解析為其中一個複本節點的 IP 地址。
針對讀取活動,應用程式也可連線到叢集中的任何節點。與主要端點不同,節點端點會解析至特定端點。若您在叢集中進行變更 (例如新增或刪除複本),您必須更新您應用程式中的節點端點。
尋找 Valkery 或 Valkey 或 Redis OSS(停用叢集模式) 叢集的端點
-
登入 AWS Management Console 並在 https://console.aws.amazon.com/elasticache/
開啟 ElastiCache 主控台。 -
從導覽窗格中,選擇 Valkey 叢集或 Redis OSS叢集。
叢集畫面會顯示 Valkery 或 Valkey 或 Redis OSS(停用叢集模式) 和 Valkey 或 Redis OSS(啟用叢集模式) 叢集的清單。
-
若要尋找叢集的主要和/或讀取器端點,請選擇叢集名稱 (而非左側的按鈕)。
Valkery 或 Valkey 或 Redis OSS(停用叢集模式) 叢集的主要和讀取器端點
如果叢集中只有一個節點,就不會有主要端點,因此您必須繼續下一個步驟。
-
如果 Valkery 或 Valkey 或 Redis OSS(停用叢集模式) 叢集有複本節點,您可以選擇叢集的名稱,然後選擇節點索引標籤,以尋找叢集的複本節點端點。
隨即顯示節點畫面,其顯示叢集中的每個節點、主要複本和複本,並與其端點一起列出。
Valkery 或 Valkey 或 Redis OSS(停用叢集模式) 叢集的節點端點
-
將端點複製到剪貼簿:
-
逐一尋找您要複製的端點。
-
選擇端點前面的複製圖示。
現在,端點即已複製到您的剪貼簿。如需使用端點連線至節點的相關資訊,請參閱 連線至 Memcached 節點。
-
Valkery 或 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(啟用叢集模式) 叢集具有單一組態端點。只要連線到組態端點,您的應用程式就可以探索叢集中每個碎片的主要和讀取端點。
尋找 Valkey 或 Redis OSS(啟用叢集模式) 叢集的端點
-
登入 AWS Management Console 並在 https://console.aws.amazon.com/elasticache/
開啟 ElastiCache 主控台。 -
從導覽窗格中,選擇 Valkey 叢集或 Redis OSS叢集。
叢集畫面會顯示叢集清單。選擇您要連線的叢集。
-
若要尋找叢集的組態端點,請選擇叢集名稱 (而非選項按鈕)。
-
Configuration endpoint (組態端點) 會顯示於 Cluster details (叢集詳細資訊) 中。若要加以複製,請選擇端點左側的複製圖示。
所有 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
重要
如果您選擇CNAME為 Memcached 組態端點建立 ,為了讓自動探索用戶端將 識別CNAME為組態端點,您必須將 包含在 .cfg.
中CNAME。
對於 Memcached,您可以使用 AWS CLI 適用於 Amazon 的 ElastiCache 來探索節點和叢集的端點。
對於 Redis OSS,您可以使用 AWS CLI 適用於 Amazon 的 ElastiCache 來探索節點、叢集和複寫群組的端點。
尋找節點和叢集的端點 (AWS CLI)
您可以使用 AWS 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-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"
}
]
}
重要
如果您選擇CNAME為 Memcached 組態端點建立 ,為了讓自動探索用戶端將 識別CNAME為組態端點,您必須將 包含在 .cfg.
中CNAME。例如,session.save_path
參數 php.ini 檔案中的 mycluster
。.cfg.
local
對於 Valkey 和 Redis OSS,下列命令會擷取單一節點叢集 mycluster 的叢集資訊。
重要
參數--cache-cluster-id
可與複寫群組中的單一節點 Valkey 或 Redis OSS(停用叢集模式) 叢集 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 複寫群組的端點 (AWS CLI)
您可以使用 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。
對於 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>
重要
如果您選擇CNAME為 Memcached 組態端點建立 ,為了讓自動探索用戶端將 識別CNAME為組態端點,您必須將 包含在 .cfg.
中CNAME。例如,session.save_path
參數 php.ini 檔案中的 mycluster
。.cfg.
local
尋找 Valkey 或 Redis OSS 複寫群組的端點 (ElastiCache API)
您可以使用 ElastiCache API來探索複寫群組的端點,以及具有 DescribeReplicationGroups
動作的叢集。此動作會傳回複寫群組的主要端點、複寫群組中所有叢集的清單和其端點,以及讀取器端點。
下列操作會擷取複寫群組 的主要端點 ()PrimaryEndpoint、讀取器端點 (ReaderEndpoint) 和個別節點端點 (ReadEndpoint)myreplgroup
。使用主要端點來進行所有寫入操作。
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。