

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

# 在中选择网络类型 ElastiCache
<a name="network-type"></a>

ElastiCache 支持互联网协议版本 4 和 6（IPv4 和 IPv6），允许您将集群配置为接受：
+ 只有 IPv4 连接，
+ 只有 IPv6 连接，
+ 将解为 IPv4 和 IPv6 连接（双堆栈堆栈将解为）

在 [Nitro 系统](https://aws.amazon.com/ec2/nitro/)上构建的所有实例上使用 Valkey 7.2 及更高版本或者 Redis OSS 6.2 及更高版本的工作负载均支持 IPv6。通过 IPv6 进行访问 ElastiCache 不收取额外费用。

**注意**  
不支持迁移在 IPV6 /双栈可用之前创建的集群。也不支持在新创建的集群上切换网络类型。

在 [Nitro 系统](https://aws.amazon.com/ec2/nitro/)上构建的所有实例上使用 Memcached 1.6.6 及更高版本的工作负载均支持 IPv6。通过 IPv6 进行访问 ElastiCache 不收取额外费用。

## 为网络类型配置子网
<a name="network-type-subnets"></a>

如果您在 Amazon VPC 中创建集群，则必须指定子网组。 ElastiCache 使用该子网组选择子网和该子网内的 IP 地址以与您的节点关联。 ElastiCache 群集需要一个双栈子网，同时分配了 IPv4 和 IPv6 地址才能在双堆栈模式下运行，还需要一个 IPv6-only 子网作为其运行。 IPv6-only

## 使用双堆栈将解为
<a name="network-type-dual-stack"></a>

在启用了集群模式的 Redis OSS 上使用 ElastiCache 时，从应用程序的角度来看，通过配置终端节点连接到所有集群节点与直接连接到单个缓存节点没有什么不同。要实现此目的，集群感知客户端必须参与群集发现过程并请求所有节点的配置信息。Redis 的发现协议仅支持每个节点一个 IP。

当您使用 ElastiCache for Memcached 创建集群并选择双堆栈作为网络类型时，您需要指定 IP 发现类型，即 IPv4 或 IPv6。 ElastiCache 会将网络类型和 IP 发现默认为 IPv6，但可以更改。如果您使用 Auto Discovery，则仅将所选 IP 类型的 IP 地址返回给 Memcached 客户端。有关更多信息，请参阅 [自动识别集群（Memcached）中的节点](AutoDiscovery.md)。

为了保持与所有现有客户端的向后兼容性，引入了 IP 发现，它允许您在发现协议中选择要通告的 IP 类型（即 IPv4 或 IPv6）。虽然这将auto 发现限制为仅限于一种 IP 类型，但双栈仍然有利于支持集群模式的工作负载，因为它允许在不停机的情况下从 IPv4 迁移（或回滚）到 IPv6 发现 IP 类型。

## 启用 TLS 的双堆栈 ElastiCache 集群
<a name="configuring-tls-enabled-dual-stack"></a>

当为 ElastiCache 集群启用 TLS 时，集群发现功能（例如`cluster slots``cluster shards`、和）`cluster nodes`使用 Valkey 或 Redis OSS 以及 `config get cluster` Memcached 会返回主机名而不是 IP。然后使用主机名而不是 IP 来连接到 ElastiCache 集群并执行 TLS 握手。这意味着客户端不会受到 IP 发现参数的影响。*对于启用 TLS 的集群，IP 发现参数对首选 IP 协议没有影响。*相反，使用的 IP 协议将取决于客户端在解析 DNS 主机名时首选的 IP 协议。

有关在解析 DNS 主机名时如何配置 IP 协议首选项的示例，请参阅[启用 TLS 的双堆栈 ElastiCache 集群](BestPractices.md#network-type-configuring-tls-enabled-dual-stack)。

## 使用 AWS 管理控制台 （Valkey 和 Redis OSS）
<a name="network-type-console"></a>

使用创建集群时 AWS 管理控制台，在 “**连接**” 下选择网络类型，即 **IPv4、IPv** **6** 或**双堆栈**。如果您要创建 Valkey 或 Redis OSS（已启用集群模式）集群并选择双堆栈，则必须选择**发现 IP 类型**，即 IPv6 或 IPv4。

有关更多信息，请参阅 [创建 Valkey 或 Redis OSS（已启用集群模式）集群（控制台）](Clusters.Create.md#Clusters.Create.CON.RedisCluster)或 [创建 Valkey 或 Redis OSS 集群（已禁用集群模式）集群（控制台）](Clusters.Create.md#Clusters.Create.CON.Redis)。

使用创建复制组时 AWS 管理控制台，请选择网络类型，即 **IPv4、IPv** **6** 或**双堆栈**。如果您选择双堆栈，则必须选择**发现 IP 类型**，即 IPv6 或 IPv4。

有关更多信息，请参阅 [从头创建 Valkey 或 Redis OSS（已禁用集群模式）复制组](Replication.CreatingReplGroup.NoExistingCluster.Classic.md)或 [从头开始在 Valkey 或 Redis OSS（已启用集群模式）中创建复制组](Replication.CreatingReplGroup.NoExistingCluster.Cluster.md)。

## 使用 AWS 管理控制台 （Memcached）
<a name="network-type-console-mem"></a>

使用创建集群时 AWS 管理控制台，在 “**连接**” 下选择网络类型，即 **IPv4、IPv** **6** 或**双堆栈**。如果您选择双堆栈，则必须选择**发现 IP 类型**，即 IPv6 或 IPv4。

有关更多信息，请参阅 [创建 Memcached 集群（控制台）](Clusters.Create-mc.md#Clusters.Create.CON.Memcached)。

## 将 CLI 与 Valkey、Memcached 或 Redis OSS 结合使用。
<a name="network-type-cli"></a>

**Redis OSS**

使用 CLI 创建 Valkey 或 Redis OSS 集群时，您可以使用 [create-cache-cluster](https://docs.aws.amazon.com/cli/latest/reference/elasticache/create-cache-cluster.html) 命令并指定 `NetworkType` 和 `IPDiscovery` 参数：

对于 Linux、macOS 或 Unix：

```
aws elasticache create-cache-cluster \
    --cache-cluster-id "cluster-test" \
    --engine redis \
    --cache-node-type cache.m5.large \
    --num-cache-nodes 1 \
    --network-type dual_stack \
    --ip-discovery ipv4
```

对于 Windows：

```
aws elasticache create-cache-cluster ^
    --cache-cluster-id "cluster-test" ^
    --engine redis ^
    --cache-node-type cache.m5.large ^
    --num-cache-nodes 1 ^
    --network-type dual_stack ^
    --ip-discovery ipv4
```

使用 CLI 创建禁用集群模式的复制组时，您可以使用 [create-replication-group](https://docs.aws.amazon.com/cli/latest/reference/elasticache/create-replication-group.html) 命令并指定`NetworkType`和`IPDiscovery`参数：

对于 Linux、macOS 或 Unix：

```
aws elasticache create-replication-group \
   --replication-group-id sample-repl-group \
   --replication-group-description "demo cluster with replicas" \
   --num-cache-clusters 3 \
   --primary-cluster-id redis01 \
   --network-type dual_stack \
   --ip-discovery ipv4
```

对于 Windows：

```
aws elasticache create-replication-group ^
   --replication-group-id sample-repl-group ^
   --replication-group-description "demo cluster with replicas" ^
   --num-cache-clusters 3 ^
   --primary-cluster-id redis01 ^
   --network-type dual_stack ^
   --ip-discovery ipv4
```

在使用 CLI 创建启用集群模式的复制组并使用 IPv4 进行 IP 发现时，您可以使用 [create-replication-group](https://docs.aws.amazon.com/cli/latest/reference/elasticache/create-replication-group.html) 命令并指定 `NetworkType` 和 `IPDiscovery` 参数：

对于 Linux、macOS 或 Unix：

```
aws elasticache create-replication-group \
  --replication-group-id demo-cluster \
  --replication-group-description "demo cluster" \
  --cache-node-type cache.m5.large \
  --num-node-groups 2 \
  --engine redis \
  --cache-subnet-group-name xyz \
  --network-type dual_stack \
  --ip-discovery ipv4 \
  --region us-east-1
```

对于 Windows：

```
aws elasticache create-replication-group ^
  --replication-group-id demo-cluster ^
  --replication-group-description "demo cluster" ^
  --cache-node-type cache.m5.large ^
  --num-node-groups 2 ^
  --engine redis ^
  --cache-subnet-group-name xyz ^
  --network-type dual_stack ^
  --ip-discovery ipv4 ^
  --region us-east-1
```

在使用 CLI 创建启用集群模式的复制组并使用 IPv6 进行 IP 发现时，您可以使用 [create-replication-group](https://docs.aws.amazon.com/cli/latest/reference/elasticache/create-replication-group.html) 命令并指定 `NetworkType` 和 `IPDiscovery` 参数：

对于 Linux、macOS 或 Unix：

```
aws elasticache create-replication-group \
  --replication-group-id demo-cluster \
  --replication-group-description "demo cluster" \
  --cache-node-type cache.m5.large \
  --num-node-groups 2 \
  --engine redis \
  --cache-subnet-group-name xyz \
  --network-type dual_stack \
  --ip-discovery ipv6 \
  --region us-east-1
```

对于 Windows：

```
aws elasticache create-replication-group ^
  --replication-group-id demo-cluster ^
  --replication-group-description "demo cluster" ^
  --cache-node-type cache.m5.large ^
  --num-node-groups 2 ^
  --engine redis ^
  --cache-subnet-group-name xyz ^
  --network-type dual_stack ^
  --ip-discovery ipv6 ^
  --region us-east-1
```

**Memcached**

使用 CLI 创建 Memcached 集群时，您可以使用 [create-cache-cluster](https://docs.aws.amazon.com/cli/latest/reference/elasticache/create-cache-cluster.html) 命令并指定 `NetworkType` 和 `IPDiscovery` 参数：

对于 Linux、macOS 或 Unix：

```
aws elasticache create-cache-cluster \
    --cache-cluster-id "cluster-test" \
    --engine memcached \
    --cache-node-type cache.m5.large \
    --num-cache-nodes 1 \
    --network-type dual_stack \
    --ip-discovery ipv4
```

对于 Windows：

```
aws elasticache create-cache-cluster ^
    --cache-cluster-id "cluster-test" ^
    --engine memcached ^
    --cache-node-type cache.m5.large ^
    --num-cache-nodes 1 ^
    --network-type dual_stack ^
    --ip-discovery ipv4
```