使用碎片 - Amazon ElastiCache (雷迪OSS斯)

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用碎片

碎片 (API/CLI: 節點群組) 是一到六個 ElastiCache (Redis OSS) 節點的集合。Redis OSS (叢集模式停用) 叢集永遠不會有一個以上的碎片。使用碎片,您可以將大型資料庫分割成更小、更快速且更容易管理的零件,稱為資料碎片。這可以通過將操作分配到多個單獨的部分來提高數據庫效率。使用碎片可以提供許多好處,包括提高性能,可擴展性和成本效率。

您可以建立具有較高數量碎片和較低數量複本的叢集,每一叢集最高總計為 90 個節點。此叢集組態的範圍可以從 90 個碎片和 0 個複本到 15 個碎片和 5 個複本,這是允許的複本最大數量。叢集的資料會分割到叢集的各個碎片中。如果一個碎片中有超過一個節點,碎片會實作複寫,其中一個節點為讀取/寫入主要節點,其他節點則為僅供讀取複本節點。

如果 Redis OSS 引擎版本為 5.0.6 或更高版本,則每個叢集的節點或碎片限制最多可增加到 500 個。例如,您可以選擇設定具有 500 個節點的叢集,並容許碎片在 83 個(每個碎片一個主要版本和 5 個複本)到 500 個(單一主要版本並且沒有複本)之間變化。請確保有足夠的可用 IP 地址來容納增加的數量。常見的缺陷包括子網路群組中的子網路的 CIDR 範圍太小,或是子網路被共用並被其他叢集大量使用。如需詳細資訊,請參閱 建立子網路群組

對於 5.0.6 以下的版本,每個叢集的限制為 250 個。

若要請求提高配額,請參閱 AWS 服務配額,並選擇配額類型 Nodes per cluster per instance type (每執行個體類型每叢集的節點數)

當您使用 ElastiCache 主控台建立 Redis OSS (已啟用叢集模式) 叢集時,您可以指定叢集中的碎片數目以及碎片中的節點數目。如需詳細資訊,請參閱 建立 Redis OSS (已啟用叢集模式) 叢集 (主控台)。如果您使用 ElastiCache API 或 AWS CLI 建立叢集 (在 API/CLI 中稱為複寫群組),則可以獨立設定碎片 (API/CLI: 節點群組) 中的節點數目。如需詳細資訊,請參閱下列內容:

  • API:CreateReplicationGroup

  • CLI:create-replication-group

碎片中的每個節點都具有相同的運算、儲存體及記憶體規格。 ElastiCache API 可讓您控制整個共用屬性,例如節點數目、安全性設定和系統維護時段。

影像:Redis 的 OSS 碎片配置。

雷迪斯 OSS 碎片配置

如需更多詳細資訊,請參閱「Redis OSS 的離線重新分片和碎片重新平衡 (已啟用叢集模式)」及「Redis OSS 的線上重新分片和碎片重新平衡 (已啟用叢集模式)」。

尋找碎片的 ID

您可以使用 AWS Management Console、 AWS CLI 或 ElastiCache API 來尋找碎片的 ID。

使用 AWS Management Console

針對 Redis OSS (叢集模式已停用)

Redis OSS (叢集模式停用) 複寫群組碎片識別碼永遠都是。0001

適用於已啟用叢集模式)

下列程序會使用 AWS Management Console 來尋找 Redis OSS (已啟用叢集模式) 的複寫群組的碎片識別碼。

若要尋找 Redis OSS (已啟用叢集模式) 複寫群組中的碎片識別碼
  1. 請登入 AWS Management Console 並開啟 ElastiCache 主控台,網址為 https://console.aws.amazon.com/elasticache/

  2. 在瀏覽窗格中,選擇 Redis OSS,然後選擇您要尋找其碎片識別碼之 Redis OSS (已啟用叢集模式) 複寫群組的名稱。

  3. Shard Name (碎片名稱) 欄中,碎片 ID 是碎片名稱的最後四位數。

使用 AWS CLI

若要尋找 Redis OSS (叢集模式停用) 或 Redis OSS (已啟用叢集模式) 複寫群組的碎片 (節點群組) 識別碼,請使用具有下列選用參數describe-replication-groups的 AWS CLI 作業。

  • --replication-group-id - 選用參數,使用時會將輸出限制為指定複寫群組的詳細資訊。若忽略此參數,則最多會傳回 100 個複寫群組詳細資訊。

此命令將傳回 sample-repl-group 的詳細資訊。

若為 Linux、macOS 或 Unix:

aws elasticache describe-replication-groups \ --replication-group-id sample-repl-group

針對 Windows:

aws elasticache describe-replication-groups ^ --replication-group-id sample-repl-group

此命令的輸出看起來會與以下內容相似。碎片 (節點群組) ID 已在此 highlighted (反白),可讓您更輕易地找到。

{ "ReplicationGroups": [ { "Status": "available", "Description": "2 shards, 2 nodes (1 + 1 replica)", "NodeGroups": [ { "Status": "available", "Slots": "0-8191", "NodeGroupId": "0001", "NodeGroupMembers": [ { "PreferredAvailabilityZone": "us-west-2c", "CacheNodeId": "0001", "CacheClusterId": "sample-repl-group-0001-001" }, { "PreferredAvailabilityZone": "us-west-2a", "CacheNodeId": "0001", "CacheClusterId": "sample-repl-group-0001-002" } ] }, { "Status": "available", "Slots": "8192-16383", "NodeGroupId": "0002", "NodeGroupMembers": [ { "PreferredAvailabilityZone": "us-west-2b", "CacheNodeId": "0001", "CacheClusterId": "sample-repl-group-0002-001" }, { "PreferredAvailabilityZone": "us-west-2a", "CacheNodeId": "0001", "CacheClusterId": "sample-repl-group-0002-002" } ] } ], "ConfigurationEndpoint": { "Port": 6379, "Address": "sample-repl-group.9dcv5r.clustercfg.usw2.cache.amazonaws.com" }, "ClusterEnabled": true, "ReplicationGroupId": "sample-repl-group", "SnapshotRetentionLimit": 1, "AutomaticFailover": "enabled", "SnapshotWindow": "13:00-14:00", "MemberClusters": [ "sample-repl-group-0001-001", "sample-repl-group-0001-002", "sample-repl-group-0002-001", "sample-repl-group-0002-002" ], "CacheNodeType": "cache.m3.medium", "DataTiering": "disabled", "PendingModifiedValues": {} } ] }

若要尋找 Redis OSS (叢集模式停用) 或 Redis OSS (已啟用叢集模式) 複寫群組的碎片 (節點群組) 識別碼,請使用具有下列選用參數describe-replication-groups的 AWS CLI 作業。

  • ReplicationGroupId - 選用參數,使用時會將輸出限制為指定複寫群組的詳細資訊。若忽略此參數,則最多會傳回 xxx 個複寫群組詳細資訊。

此命令將傳回 sample-repl-group 的詳細資訊。

若為 Linux、macOS 或 Unix:

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