

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

# 在 ElastiCache 中使用分片
<a name="Shards"></a>

分片（API/CLI：节点组）是 1 到 6 个 ElastiCache for Valkey 或 ElastiCache for Redis OSS 节点的集合。Valkey 或 Redis OSS（已禁用集群模式）集群永远不会有多个分片。使用分片，您可以将大型数据库分成更小、更快、更易于管理的部分，这些部分称为数据分片。这可以通过在多个独立部分之间分配操作来提高数据库效率。使用分片可以带来许多好处，包括提高性能、可扩展性和成本效益。

您可以创建具有更多分片和更少副本的集群，每个集群最多可包含 90 个节点。此集群配置的范围可以从 90 个分片和 0 个副本到 15 个分片和 5 个副本，这是允许的最大副本数。集群的数据分配到该集群的各个分片上。如果分片包含多个节点，则该分片实现了一个节点作为读取/写入主节点且其他节点为只读副本节点的复制。

如果引擎为 Valkey 7.2 及更高版本或 Redis OSS 5.0.6 至 7.1，则您可以将每个集群的节点或分片上限增至最多 500 个。例如，您可以选择配置一个 500 节点的集群，范围介于 83 个分片（一个主分片和 5 个副本分片）和 500 个分片（一个主分片，无副本分片）之间。确保可提供足够的 IP 地址来满足增长需求。常见的陷阱包括子网组中的子网 CIDR 范围太小，或者子网被其他集群共享和大量使用。有关更多信息，请参阅 [创建子网组](SubnetGroups.Creating.md)。

 对于低于 5.0.6 的版本，每个集群的限制为 250。

若要请求提高限制，请参阅 [Amazon Service Limits](https://docs.amazonaws.cn/general/latest/gr/aws_service_limits.html) 并选择限制类型 **Nodes per cluster per instance type（每个实例类型的每个集群的节点数）**。

使用 ElastiCache 控制台创建 Valkey 或 Redis OSS（已启用集群模式）集群时，您可以指定集群中的分片数和分片中的节点数。有关更多信息，请参阅 [创建 Valkey 或 Redis OSS（已启用集群模式）集群（控制台）](Clusters.Create.md#Clusters.Create.CON.RedisCluster)。使用 ElastiCache API 或 Amazon CLI 创建集群（在 API/CLI 中称作*复制组*）时，您可以独立地配置分区（API/CLI：节点组）中的节点数。有关更多信息，请参阅下列内容：
+ API: [CreateReplicationGroup](https://docs.amazonaws.cn/AmazonElastiCache/latest/APIReference/API_CreateReplicationGroup.html)
+ CLI：[create-replication-group](https://docs.amazonaws.cn/cli/latest/reference/elasticache/create-replication-group.html)

分片中每个节点的计算、存储和内存规格均相同。通过 ElastiCache API 可以控制分区范围的属性，如节点数、安全设置和系统维护时段。

![\[图片：Valkey 或 Redis OSS 分片配置。\]](http://docs.amazonaws.cn/AmazonElastiCache/latest/dg/images/ElastiCacheClusters-CSN-RedisShards.png)


*Valkey 或 Redis OSS 分片配置*

有关更多信息，请参阅[Valkey 或 Redis OSS（已启用集群模式）的离线重新分片](scaling-redis-cluster-mode-enabled.md#redis-cluster-resharding-offline)和[Valkey 或 Redis OSS（已启用集群模式）的离线重新分片](scaling-redis-cluster-mode-enabled.md#redis-cluster-resharding-online)。

## 查找分区的 ID
<a name="shard-find-id"></a>

您可以使用 Amazon Web Services 管理控制台、Amazon CLI 或 ElastiCache API 查找分区的 ID。

### 使用 Amazon Web Services 管理控制台
<a name="shard-find-id-con"></a>



**Topics**
+ [对于 Valkey 或 Redis OSS（已禁用集群模式）](#shard-find-id-con-classic)
+ [对于 Valkey 或 Redis OSS（已启用集群模式）](#shard-find-id-con-cluster)

#### 对于 Valkey 或 Redis OSS（已禁用集群模式）
<a name="shard-find-id-con-classic"></a>

Valkey 或 Redis OSS（已禁用集群模式）复制组分片 ID 始终为 `0001`。

#### 对于 Valkey 或 Redis OSS（已启用集群模式）
<a name="shard-find-id-con-cluster"></a>

以下过程使用 Amazon Web Services 管理控制台 查找 Valkey 或 Redis OSS（已启用集群模式）的复制组的分片 ID。

**在 Valkey 或 Redis OSS（已启用集群模式）复制组中查找分片 ID**

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

1. 在导航窗格上，选择 **Valkey** 或 **Redis OSS**，然后选择要为其查找分片 ID 的 Valkey 或 Redis OSS（已启用集群模式）复制组的名称。

1. 在 **Shard Name（分区名称）**列中，分区 ID 是分区名称的最后四位数字。

### 使用 Amazon CLI
<a name="shard-find-id-cli"></a>

要为 Valkey 或 Redis OSS（已禁用集群模式）或 Valkey 或 Redis OSS（已启用集群模式）复制组查找分片（节点组）ID，请使用以下可选参数执行 Amazon CLI 操作 `describe-replication-groups`。
+ **– `--replication-group-id`** 用来将输出限制为指定复制组的详细信息的可选参数。如果忽略此参数，将返回最多 100 个复制组的详细信息。

**Example**  
此命令将返回 `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 在此处*突出显示*，以便更容易找到它们。  

```
{
    "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": {}
        }
    ]
}
```

### 使用 ElastiCache API
<a name="shard-find-id-api"></a>

要为 Valkey 或 Redis OSS（已禁用集群模式）或 Valkey 或 Redis OSS（已启用集群模式）复制组查找分片（节点组）ID，请使用以下可选参数执行 Amazon CLI 操作 `describe-replication-groups`。
+ **– `ReplicationGroupId`** 用来将输出限制为指定复制组的详细信息的可选参数。如果忽略此参数，将返回最多 *xxx* 个复制组的详细信息。

**Example**  
此命令将返回 `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>
```