Valkey 和 Redis 的OSS配置和限制 - Amazon ElastiCache

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

Valkey 和 Redis 的OSS配置和限制

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

无服务器缓存

对于无服务器缓存,不使用参数组,所有 Valkey 或 Redis OSS 配置都不可修改。以下 Valkey 或 Redis OSS 参数已准备就绪:

Name 详细信息 描述
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 单个客户端查询缓冲区的最大大小。此外,客户端不能发布参数超过 4000 个的请求。
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 命令都可能返回 ____- 形式的错误。BUSY由于这种状态可能会干扰许多基本的 Valkey 或 Redis OSS 操作,因此 ElastiCache 将首先发出SCRIPTKILL命令。如果不成功, 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 详细信息 描述
键名称长度 4 KiB 单个 Valkey 或 Redis 密OSS钥或频道名称的最大大小。引用大于此值的键的客户端将收到错误消息。
Lua 脚本大小 4 MiB 单个 Valkey 或 Redis OSS Lua 脚本的最大大小。尝试加载大于此值的 Lua 脚本将收到错误。
槽大小 32 GiB 单个 Valkey 或 Redis OSS 哈希槽的最大大小。试图在单个 Valkey 或 Redis OSS 插槽上设置超过此数量的数据的客户端将在该插槽上触发驱逐策略,如果没有密钥可驱逐,则会收到内存不足 () 错误。OOM

自行设计的集群

对于自行设计的集群,请参阅 Valkey 和 Redis 参数 OSS 以了解配置参数的默认值,以及哪些参数可供配置。通常建议使用默认值,除非您的特定使用案例要求覆盖这些值。