

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

# 整体最佳实践
<a name="WorkingWithRedis"></a>

您可以在下面找到有关使用 Valkey、Memcached 和 Redis OSS 接口的最佳实践的信息。 ElastiCache
+ **使用启用集群模式的配置 — 启用**集群模式允许缓存水平扩展，以实现比禁用集群模式的配置更高的存储和吞吐量。 ElastiCache serverless 仅在启用集群模式的配置中可用。
+ **使用长时间生存的连接** – 创建新连接的成本很高，而且需要花费时间和缓存中的 CPU 资源。尽可能重复使用连接（例如，使用连接池），以将此成本分摊到多条命令上。
+ **从副本读取**-如果您使用的是ElastiCache 无服务器或已预配置只读副本（基于节点的集群），请直接读取副本以实现更好的可扩展性，降低延迟。 and/or 从副本中读取的数据最终与主节点是一致的。

  在基于节点的集群中，避免将读取请求定向到单个只读副本，因为在节点出现故障时，可能暂时无法读取。将您的客户端配置为将读取请求定向到至少两个只读副本，或将读取定向到单个副本和主节点。

  在 ElastiCache 无服务器中，从副本端口 (6380) 读取会尽可能将读取定向到客户端的本地可用区，从而减少检索延迟。在故障期间，它将自动回退到其他节点。
+ **避免使用昂贵的命令** — 避免运行任何计算密 I/O 集型和密集型操作，例如`KEYS`和`SMEMBERS`命令。我们推荐此方法是因为这些操作可增加集群上的负载并能对集群的性能产生影响。改用 `SCAN` 和 `SSCAN` 命令。
+ **遵循 Lua 最佳实践** – 避免长时间运行 Lua 脚本并始终预先声明在 Lua 脚本中使用的密钥。我们建议使用此方法确定 Lua 脚本未使用跨槽命令。请确保 Lua 脚本中使用的密钥属于同一槽。
+ **使用分片 pub/sub** — 使用 Valkey 或 Redis OSS 支持高吞吐量 pub/sub 的工作负载时，我们建议你使用[分片 pub/sub](https://valkey.io/topics/pubsub/)（在 Valkey 和 Redis OSS 7 或更高版本中可用）。 pub/sub 在启用集群模式的集群中，传统模式会向集群中的所有节点广播消息，这可能会导致高电平。`EngineCPUUtilization`请注意，在 ElastiCache 无服务器的传统pub/sub commands internally use sharded pub/sub命令中。

**Topics**