

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

# Valkey 和 Redis OSS 配置和限制
<a name="RedisConfiguration"></a>

Valkey 和 Redis OSS 引擎各自提供了许多配置参数，其中一些参数可以在 Redis OSS 中 ElastiCache 进行修改，有些则不可修改以提供稳定的性能和可靠性。

## 无服务器缓存
<a name="RedisConfiguration.Serverless"></a>

无服务器缓存不使用参数组，而且所有 Valkey 或 Redis OSS 配置都不可修改。其中包括以下 Valkey 或 Redis OSS 参数：


****  

|  Name  |  Details  |  说明  | 
| --- | --- | --- | 
| acl-pubsub-default | `allchannels` | 此缓存上的 ACL 用户默认拥有 pubsub 频道权限。 | 
| client-output-buffer-limit | `normal 0 0 0` `pubsub 32mb 8mb 60` | 普通客户端没有缓冲区限制。 PUB/SUB 如果客户违反 32MiB 的待办事项或在 60 秒内违反 8MiB 的积压请求，则他们将断开连接。 | 
| client-query-buffer-limit | 1 GiB | 单个客户端查询缓冲区的最大大小。此外，客户端不能发布参数超过 3999 个的请求。 | 
| cluster-allow-pubsubshard-when-down | yes | 这样在缓存部分关闭时，缓存仍能为 pubsub 流量提供服务。 | 
| cluster-allow-reads-when-down | yes | 这样在缓存部分关闭时，缓存仍能为读取流量提供服务。 | 
| cluster-enabled | yes | 所有无服务器缓存都启用了集群模式，这使得它们可以在多个后端分片之间透明地将数据分区。所有槽都对客户端显示为属于单个虚拟节点。 | 
| cluster-require-full-coverage | no | 当键空间部分关闭时（即，至少有一个哈希槽无法访问），缓存将继续接受对仍在覆盖范围的部分键空间的查询。在 cluster slots 中，整个键空间将始终由单个虚拟节点“覆盖”。 | 
| lua-time-limit | 5000 | Lua 脚本在采取行动停止脚本之前 ElastiCache 的最大执行时间，以毫秒为单位。如果超过 `lua-time-limit`，则所有 Valkey 或 Redis OSS 命令都可能返回形式为 *\$1\$1\$1\$1-BUSY* 的错误。由于这种状态可能会干扰许多基本的 Valkey 或 Redis OSS 操作，因此 ElastiCache 将首先发出 SCR *IPT K* ILL 命令。如果不成功， ElastiCache 将强制重启 Valkey 或 Redis OSS。 | 
| maxclients | 65000 | 缓存上可以一次连接的最大客户端连接数。超过此数量后，连接不一定能成功。 | 
| maxmemory-policy | volatile-lru | 当达到缓存的内存限制时，按照 least-recently-used (LRU) 估计，设置了 TTL 的项目将被驱逐出去。 | 
| notify-keyspace-events | （空字符串） | 无服务器缓存目前不支持键空间事件。 | 
| port | 主端口：6379 读取端口：6380 | 无服务器缓存向两个端口传播相同的主机名。主端口允许写入和读取，而读取端口则允许使用命令 READONLY 实现更低延迟的最终一致读数。 | 
| proto-max-bulk-len | 512 MiB | 单元素请求的最大大小。 | 
| timeout | 0 | 客户端不会在达到特定空闲时间后被强制断开连接，但在稳定状态期间，它们可能会出于负载均衡目的而断开连接。 | 

此外还有以下限制：


****  

|  Name  |  Details  |  说明  | 
| --- | --- | --- | 
| 每个缓存的大小 | 5,000 GiB | 每个无服务器缓存可以存储的最大数据量。 | 
| 每个槽的大小 | 32 GiB | 单个 Valkey 或 Redis OSS 哈希槽的最大大小。客户端如果尝试在单个 Valkey 或 Redis OSS 槽上设置超过此值的更多数据，就会触发驱逐策略，如果没有键可供驱逐，则会收到内存不足（OOM）错误。 | 
| 每个缓存的 ECPU | 1500 万 ECPU/秒 | ElastiCache 处理单位 (ECPU) 指标。您的请求 ECPUs 消耗的数量取决于所用的 vCPU 时间和传输的数据量。 | 
| 每个槽的 ECPU | 3-9 万 ECPU/秒 | 使用只读连接从副本读取 ECPUs/second 时， ECPUs/second 每个插槽最大为 30K，或者使用从副本读取时为 90K。 | 
| 每个请求的参数 | 3,999 | 每个请求的最大参数数量。发送超过此数量的参数的客户端将收到错误响应。 | 
| 键名称长度 | 4 KiB | 单个 Valkey 或 Redis OSS 键或频道名称的最大大小。引用大于此值的键的客户端将收到错误消息。 | 
| Lua 脚本大小 | 4 MiB | 单个 Valkey 或 Redis OSS Lua 脚本的最大大小。尝试加载大于此值的 Lua 脚本将收到错误。 | 

## 基于节点的集群
<a name="RedisConfiguration.SelfDesigned"></a>

对于基于节点的集群，请参阅 [Valkey 和 Redis OSS 参数](ParameterGroups.Engine.md#ParameterGroups.Redis) 以了解配置参数的默认值，以及哪些参数可供配置。通常建议使用默认值，除非您的特定使用案例要求覆盖这些值。