

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

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

ElastiCache 支持 Internet 协议版本 4 IPv4 和 6（和 IPv6），允许您将集群配置为接受：
+ 只有 IPv4 连接，
+ 只有 IPv6 连接，
+ 两者 IPv4 兼而 IPv6 有之（双栈）

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

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

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

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

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

## 使用双堆栈将解为
<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 discovery 限制为仅有一种 IP 类型，但双堆栈对于启用集群模式的工作负载仍然有利，因为它可以在不停机的情况下从 IPv6 Discovery IP 类型迁移（或回滚）。 IPv4 

## 启用 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 时会返回主机名而不是。 IPs然后使用主机名代替 IPs 连接到 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**，**IPv6**或者**双堆栈**。如果您要创建 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 管理控制台，请选择网络类型**IPv6**或**双堆栈**。**IPv4**如果选择双堆栈，则必须选择 **Discovery 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**，**IPv6**或者**双堆栈**。如果选择双堆栈，则必须选择 **Discovery 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
```