本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
ElastiCache 最佳实践和缓存策略
您可以在下面找到推荐的 Amazon 最佳实践 ElastiCache。遵循这些最佳实践可提高您的缓存的性能和可靠性。
主题
TLS已启用双堆栈 ElastiCache 群集
当TLS为 ElastiCache 集群启用时,集群发现功能(cluster slots
cluster shards
、和 cluster nodes
Redis)或 config get cluster
Memcached 将返回主机名,而不是。IPs然后使用主机名代替IPs连接到 ElastiCache 集群并执行TLS握手。这意味着客户端不会受到 IP 发现参数的影响。对于TLS已启用的群集,IP 发现参数对首选 IP 协议没有影响。相反,所使用的 IP 协议将由客户端在解析DNS主机名时首选哪个 IP 协议来决定。
Java 客户端
从同时支持和的 Java 环境进行连接时IPv6,IPv6为了向后IPv4兼容,默认情况下,Java 会IPv4优先选择。但是,IP 协议首选项可通过JVM参数进行配置。要首选IPv4,则JVM接受-Djava.net.preferIPv4Stack=true
,首选IPv6设置-Djava.net.preferIPv6Stack=true
。设置-Djava.net.preferIPv4Stack=true
意味着JVM将不再建立任何IPv6连接。对于 Valkey 或 RedisOSS,这包括其他非 Valkey 和非 Redis 应用程序的应用程序。OSS
主机级别首选项
通常,如果客户端或客户端运行时不提供用于设置 IP 协议首选项的配置选项,则在执行DNS解析时,IP 协议将取决于主机的配置。默认情况下,大多数主机优先选择,IPv4但可以在主机级别配置此首选项。IPv6这将影响来自该主机的所有DNS请求,而不仅仅是对 ElastiCache 群集的请求。
Linux 主
对于 Linux,可以通过修改gai.conf
文件来配置 IP 协议首选项。可以在下方找到该gai.conf
文件/etc/gai.conf
。如果未gai.conf
指定,则应提供一个示例/usr/share/doc/glibc-common-x.xx/gai.conf
,可以在其下复制到,/etc/gai.conf
然后应取消注释默认配置。要在连接到集群IPv4时将配置更新为首选,请将包含 ElastiCache 群集的CIDR范围的优先级更新为高于默认IPv6连接的优先级。IPs默认情况下,IPv6连接的优先级为 40。例如,假设集群位于 CIDR 172.31.0. 0:0 /16 的子网中,则以下配置将导致客户端更喜欢连接到该集群。IPv4
label ::1/128 0 label ::/0 1 label 2002::/16 2 label ::/96 3 label ::ffff:0:0/96 4 label fec0::/10 5 label fc00::/7 6 label 2001:0::/32 7 label ::ffff:172.31.0.0/112 8 # # This default differs from the tables given in RFC 3484 by handling # (now obsolete) site-local IPv6 addresses and Unique Local Addresses. # The reason for this difference is that these addresses are never # NATed while IPv4 site-local addresses most probably are. Given # the precedence of IPv6 over IPv4 (see below) on machines having only # site-local IPv4 and IPv6 addresses a lookup for a global address would # see the IPv6 be preferred. The result is a long delay because the # site-local IPv6 addresses cannot be used while the IPv4 address is # (at least for the foreseeable future) NATed. We also treat Teredo # tunnels special. # # precedence <mask> <value> # Add another rule to the RFC 3484 precedence table. See section 2.1 # and 10.3 in RFC 3484. The default is: # precedence ::1/128 50 precedence ::/0 40 precedence 2002::/16 30 precedence ::/96 20 precedence ::ffff:0:0/96 10 precedence ::ffff:172.31.0.0/112 100
有关更多详细信息可gai.conf
在 Linux 主页
微软主机
Windows 主机的过程与此类似。对于 Windows 主机,你可以运行netsh interface ipv6 set prefix CIDR_CONTAINING_CLUSTER_IPS PRECEDENCE LABEL
。这与修改 Linux 主机上的gai.conf
文件效果相同。
这将更新首选项策略,使其在指定CIDR范围内优先使用连接而不是IPv4IPv6连接。例如,假设集群位于子网中,并且正在CIDR执行 172.31.0. 0:0 /16,则会生成以下优先级表,netsh interface ipv6 set prefix ::ffff:172.31.0.0:0/112 100 15
这将导致客户在连接到集群时优先选择IPv4该表。
C:\Users\Administrator>netsh interface ipv6 show prefixpolicies Querying active state... Precedence Label Prefix ---------- ----- -------------------------------- 100 15 ::ffff:172.31.0.0:0/112 20 4 ::ffff:0:0/96 50 0 ::1/128 40 1 ::/0 30 2 2002::/16 5 5 2001::/32 3 13 fc00::/7 1 11 fec0::/10 1 12 3ffe::/16 1 3 ::/96