

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

# 在中处理分片 ElastiCache
<a name="Shards"></a>

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

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

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

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

若要请求提高限制，请参阅 [AWS Service Limits](https://docs.aws.amazon.com/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 或 AWS CLI 创建集群（在中称为*复制组* API/CLI），则可以独立配置分片（API/CLI: 节点组）中的节点数。有关更多信息，请参阅下列内容：
+ API：[CreateReplicationGroup](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_CreateReplicationGroup.html)
+ CLI：[create-replication-group](https://docs.aws.amazon.com/cli/latest/reference/elasticache/create-replication-group.html)

分片中每个节点的计算、存储和内存规格均相同。该 ElastiCache API 允许您控制分片范围的属性，例如节点数量、安全设置和系统维护时段。

![图片：Valkey 或 Redis OSS 分片配置。](http://docs.aws.amazon.com/zh_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>

您可以使用 AWS 管理控制台、 AWS CLI 或 ElastiCache API 查找分片的 ID。

### 使用 AWS 管理控制台
<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>

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

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

1. 登录 AWS 管理控制台 并打开 ElastiCache 控制台，网址为[https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/)。

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

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

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

要查找 Valkey 或 Redis OSS（已禁用集群模式）或 Valkey 或 Redis OSS（已启用集群模式）复制组的分片（节点组）ID，请使用`describe-replication-groups`带有以下可选参数的 AWS CLI 操作。
+ **`--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 的存在{{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": {}
        }
    ]
}
```

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

要查找 Valkey 或 Redis OSS（已禁用集群模式）或 Valkey 或 Redis OSS（已启用集群模式）复制组的分片（节点组）ID，请使用`describe-replication-groups`带有以下可选参数的 AWS CLI 操作。
+ **`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>
```