发动机特定参数 - 亚马逊 ElastiCache

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

发动机特定参数

Valkey 和 Redis OSS

Valkey 7.2 参数与 Redis OSS 7 的参数相同。

如果您没有为 Valkey 或 Redis OSS 集群指定参数组,则将使用适合您的引擎版本的默认参数组。您无法更改默认参数组中的任何参数的值。但是,您可以随时创建自定义参数组并将其分配给集群,只要可按条件修改的参数的值在两个参数组中相同。有关更多信息,请参阅 创建 ElastiCache 参数组

Valkey 和 Redis 参数 OSS

Valkey 7.2 和 Redis OSS 7 参数发生了变化

参数组系列:redis7

Redis OSS 7 的默认参数组如下所示:

  • default.redis7— 将此参数组或从中派生的参数组用于 Valkey 或 RedisOSS(已禁用集群模式)集群和复制组。

  • default.redis7.cluster.on— 将此参数组或从中派生的参数组用于 Valkey 或 RedisOSS(已启用集群模式)集群和复制组。

在 Redis OSS 7 中添加的参数如下所示。

名称 详细信息 描述
cluster-allow-pubsubshard-when-down

允许的值:yesno

默认:yes

类型:字符串

可修改:是

更改生效:立即跨集群中的所有节点生效。

如果设置为默认值“yes”(是),则允许节点在集群处于停机状态时提供发布订阅分片流量,只要它认为自己拥有插槽即可。

cluster-preferred-endpoint-type

允许的值:iptls-dynamic

默认:tls-dynamic

类型:字符串

可修改:是

更改生效:立即跨集群中的所有节点生效。

此值控制MOVED/ASKING请求返回的端点以及CLUSTER SLOTS和的端点字段CLUSTER SHARDS。当该值设置为 ip 时,节点将传播其 IP 地址。当该值设置为 tls-dynamic 时,节点将在启用时通告主机名 encryption-in-transit,否则通告一个 IP 地址。

latency-tracking

允许的值:yesno

默认:no

类型:字符串

可修改:是

更改生效:立即跨集群中的所有节点生效。

设置为“yes”(是)时,将跟踪每个命令的延迟,并允许通过 INFO 延迟统计命令导出百分位数分布,并通过 LATENCY 命令导出累积延迟分布(直方图)。

hash-max-listpack-entries

允许的值:0+

默认:512

类型:整数

可修改:是

更改生效:立即跨集群中的所有节点生效。

压缩数据集所需的最大哈希条目数。

hash-max-listpack-value

允许的值:0+

默认:64

类型:整数

可修改:是

更改生效:立即跨集群中的所有节点生效。

压缩数据集所需的最大哈希条目数的阈值。

zset-max-listpack-entries

允许的值:0+

默认:128

类型:整数

可修改:是

更改生效:立即跨集群中的所有节点生效。

压缩数据集所需的最大已排序集合条目数。

zset-max-listpack-value

允许的值:0+

默认:64

类型:整数

可修改:是

更改生效:立即跨集群中的所有节点生效。

压缩数据集所需的最大已排序集合条目数的阈值。

在 Redis OSS 7 中更改的参数如下所示。

名称 详细信息 描述
activerehashing

可修改:no。在 Redis OSS 7 中,默认情况下,此参数处于隐藏状态并处于启用状态。为了禁用此参数,您需要创建一个支持案例

可修改:是。

在 Redis OSS 7 中移除的参数如下所示。

名称 详细信息 描述
hash-max-ziplist-entries

允许的值:0+

默认:512

类型:整数

可修改:是

更改生效:立即跨集群中的所有节点生效。

使用 listpack 而非 ziplist 来表示小哈希编码

hash-max-ziplist-value

允许的值:0+

默认:64

类型:整数

可修改:是

更改生效:立即跨集群中的所有节点生效。

使用 listpack 而非 ziplist 来表示小哈希编码

zset-max-ziplist-entries

允许的值:0+

默认:128

类型:整数

可修改:是

更改生效:立即跨集群中的所有节点生效。

使用 listpack 而非 ziplist 来表示小哈希编码。

zset-max-ziplist-value

允许的值:0+

默认:64

类型:整数

可修改:是

更改生效:立即跨集群中的所有节点生效。

使用 listpack 而非 ziplist 来表示小哈希编码。

list-max-ziplist-size

允许的值:

默认:-2

类型:整数

可修改:是

更改生效:立即跨集群中的所有节点生效。

每个内部列表节点允许的条目数。

Redis OSS 6.x 参数发生了变化

参数组系列:redis6.x

Redis OSS 6.x 的默认参数组如下所示:

  • default.redis6.x— 将此参数组或从中派生的参数组用于 Valkey 或 RedisOSS(已禁用集群模式)集群和复制组。

  • default.redis6.x.cluster.on— 将此参数组或从中派生的参数组用于 Valkey 或 RedisOSS(已启用集群模式)集群和复制组。

注意

在 Redis OSS 引擎版本 6.2 中,当引入 r6gd 节点系列与一起使用时,r6gd 节点类型仅支持 noeviction 数据分层 ElastiCachevolatile-lru 和 allkeys-lru 最大内存策略

有关更多信息,请参阅ElastiCache (RedisOSS) 版本 6.2(增强版)ElastiCache (RedisOSS) 版本 6.0(增强版)

在 Redis OSS 6.x 中添加的参数如下所示。

详细信息 描述
acl-pubsub-default (added in 6.2)

允许的值:resetchannelsallchannels

默认:allchannels

类型:字符串

可修改:是

更改生效:与集群关联的现有 Redis OSS 用户将继续拥有现有权限。要么更新用户,要么重启集群以更新现有的 Redis OSS 用户。

部署到此集群的ACL用户的默认 pubsub 频道权限。

cluster-allow-reads-when-down (added in 6.0)

默认值:no

类型:字符串

可修改:是

更改生效:立即跨集群中的所有节点生效

如果设置为 “是”,则即使节点无法达到主节点的法定数量,RedisOSS(已启用集群模式)复制组也会继续处理读取命令。

当设置为默认值“no(不)”时,复制组将拒绝所有命令。如果您使用的集群的节点组少于三个,或者您的应用程序可以安全地处理陈旧读取,我们建议将此值设置为“yes(是)”。

tracking-table-max-keys (added in 6.0)

默认值:1000000

类型:数字

可修改:是

更改生效:立即跨集群中的所有节点生效

为了帮助客户端缓存,Redis OSS 支持跟踪哪些客户端访问了哪些密钥。

当所跟踪的密钥被修改后,会向所有客户端发送失效消息,通知它们缓存的值不再有效。此值允许您指定此表的上限。超出此参数值后,将随机向客户端发送失效。应该调整此值以限制内存使用,同时仍对足够的密钥进行跟踪。在内存不足的情况下,密钥也会失效。

acllog-max-len (added in 6.0)

默认值:128

类型:数字

可修改:是

更改生效:立即跨集群中的所有节点生效

该值对应于ACL日志中的最大条目数。

active-expire-effort (added in 6.0)

默认值:1

类型:数字

可修改:是

更改生效:立即跨集群中的所有节点生效

Redis 通过两种机制OSS删除已超过其存活时间的密钥。一种机制是,访问密钥并发现其已过期。另一种机制是,周期性任务对密钥进行采样,并使那些超过其存活时间的密钥过期。此参数定义 Redi OSS s 为使定期作业中的项目过期所花费的工作量。

默认值 1 用于避免 10% 以上的过期密钥仍存在于内存中。其还用于避免 25% 以上的总内存被消耗及增加系统的延迟。您可以将此值增加到 10,以提高用在过期密钥上的工作量。权衡是延迟更高CPU,也可能更高。除非您看到内存使用率很高并且可以容忍CPU利用率的提高,否则我们建议将值设置为 1。

lazyfree-lazy-user-del (added in 6.0)

默认值:no

类型:字符串

可修改:是

更改生效:立即跨集群中的所有节点生效

当该值设置为“yes(是)”时,DEL 命令的行为与 UNLINK 相同。

在 Redis OSS 6.x 中移除的参数如下所示。

名称 详细信息 描述
lua-replicate-commands

允许的值:yes/no

默认值:yes

类型:布尔值

可修改:是

更改生效:立即

是否始终在 Lua 脚本中启用 Lua 效果复制

Redis OSS 5.0.3 参数发生了变化

参数组系列:redis5.0

Redis OSS 5.0 默认参数组

  • default.redis5.0— 将此参数组或从中派生的参数组用于 Valkey 或 RedisOSS(已禁用集群模式)集群和复制组。

  • default.redis5.0.cluster.on— 将此参数组或从中派生的参数组用于 Valkey 或 RedisOSS(已启用集群模式)集群和复制组。

在 Redis 5.0.3 中添加的OSS参数
名称 详细信息 描述
rename-commands

默认:无

类型:字符串

可修改:是

更改生效:立即跨集群中的所有节点生效

以空格分隔的重命名 Redis 命令OSS列表。以下是可用于重命名的命令的限制列表:

APPEND AUTH BITCOUNT BITFIELD BITOP BITPOS BLPOP BRPOP BRPOPLPUSH BZPOPMIN BZPOPMAX CLIENT CLUSTER COMMAND DBSIZE DECR DECRBY DEL DISCARD DUMP ECHO EVAL EVALSHA EXEC EXISTS EXPIRE EXPIREAT FLUSHALL FLUSHDB GEOADD GEOHASH GEOPOS GEODIST GEORADIUS GEORADIUSBYMEMBER GET GETBIT GETRANGE GETSET HDEL HEXISTS HGET HGETALL HINCRBY HINCRBYFLOAT HKEYS HLEN HMGET HMSET HSET HSETNX HSTRLEN HVALS INCR INCRBY INCRBYFLOAT INFO KEYS LASTSAVE LINDEX LINSERT LLEN LPOP LPUSH LPUSHX LRANGE LREM LSET LTRIM MEMORY MGET MONITOR MOVE MSET MSETNX MULTI OBJECT PERSIST PEXPIRE PEXPIREAT PFADD PFCOUNT PFMERGE PING PSETEX PSUBSCRIBE PUBSUB PTTL PUBLISH PUNSUBSCRIBE RANDOMKEY READONLY READWRITE RENAME RENAMENX RESTORE ROLE RPOP RPOPLPUSH RPUSH RPUSHX SADD SCARD SCRIPT SDIFF SDIFFSTORE SELECT SET SETBIT SETEX SETNX SETRANGE SINTER SINTERSTORE SISMEMBER SLOWLOG SMEMBERS SMOVE SORT SPOP SRANDMEMBER SREM STRLEN SUBSCRIBE SUNION SUNIONSTORE SWAPDB TIME TOUCH TTL TYPE UNSUBSCRIBE UNLINK UNWATCH WAIT WATCH ZADD ZCARD ZCOUNT ZINCRBY ZINTERSTORE ZLEXCOUNT ZPOPMAX ZPOPMIN ZRANGE ZRANGEBYLEX ZREVRANGEBYLEX ZRANGEBYSCORE ZRANK ZREM ZREMRANGEBYLEX ZREMRANGEBYRANK ZREMRANGEBYSCORE ZREVRANGE ZREVRANGEBYSCORE ZREVRANK ZSCORE ZUNIONSTORE SCAN SSCAN HSCAN ZSCAN XINFO XADD XTRIM XDEL XRANGE XREVRANGE XLEN XREAD XGROUP XREADGROUP XACK XCLAIM XPENDING GEORADIUS_RO GEORADIUSBYMEMBER_RO LOLWUT XSETID SUBSTR

有关更多信息,请参阅 ElastiCache (RedisOSS) 版本 5.0.6(增强版)

Redis OSS 5.0.0 参数发生了变化

参数组系列:redis5.0

Redis OSS 5.0 默认参数组

  • default.redis5.0— 将此参数组或从中派生的参数组用于 Valkey 或 RedisOSS(已禁用集群模式)集群和复制组。

  • default.redis5.0.cluster.on— 将此参数组或从中派生的参数组用于 Valkey 或 RedisOSS(已启用集群模式)集群和复制组。

在 Redis 5.0 中添加的OSS参数
名称 详细信息 描述
stream-node-max-bytes

允许的值:0+

默认值:4096

类型:整数

可修改:是

更改生效:立即

流数据结构是节点的基数树,这些节点对内部的多个项进行编码。使用此配置指定基数树中单个节点的最大大小(以字节为单位)。如果设置为 0,则树节点的大小是不受限制的。
stream-node-max-entries

允许的值:0+

默认值:100

类型:整数

可修改:是

更改生效:立即

流数据结构是节点的基数树,这些节点对内部的多个项进行编码。使用此配置指定在追加新的流条目时切换到新节点之前单个节点可包含的项的最大数目。如果设置为 0,则树节点中的项数是不受限制的
active-defrag-max-scan-fields

允许的值:1 到 1000000

默认值:1000

类型:整数

可修改:是

更改生效:立即

将从主字典扫描中处理的最大 set/hash/zset/list 字段数
lua-replicate-commands

允许的值:yes/no

默认值:yes

类型:布尔值

可修改:是

更改生效:立即

是否始终在 Lua 脚本中启用 Lua 效果复制
replica-ignore-maxmemory

默认值:yes

类型:布尔值

可修改:否

确定副本是否通过不移出独立于主节点的项来忽略 maxmemory 设置

为了回应社区的反馈,Redis OSS 在引擎版本 5.0 中重命名了多个参数。有关更多信息,请参阅 Redis OSS 5 中的新增功能? 。下表列出了新名称以及它们映射到早期版本的方式。

在 Redis OSS 5.0 中重命名的参数
名称 详细信息 描述
replica-lazy-flush

默认值:yes

类型:布尔值

可修改:否

以前的名字: slave-lazy-flush

在副本同步期间执行异步 flushDB。
client-output-buffer-limit-replica-hard-limit

默认值:有关值的信息,请参阅 Redis OSS 节点类型的特定参数

类型:整数

可修改:否

以前的名字:client-output-buffer-limit-slave-hard-limit

对于 Redis 只OSS读副本:如果客户端的输出缓冲区达到指定的字节数,则客户端将断开连接。
client-output-buffer-limit-replica-soft-limit

默认值:有关值的信息,请参阅 Redis OSS 节点类型的特定参数

类型:整数

可修改:否

以前的名字:client-output-buffer-limit-slave-soft-limit

对于 Redis 只OSS读副本:如果客户端的输出缓冲区达到指定的字节数,则客户端将断开连接,但前提是这种情况持续存在。client-output-buffer-limit-replica-soft-seconds
client-output-buffer-limit-replica-soft-seconds

默认值:60

类型:整数

可修改:否

以前的名字:client-output-buffer-limit-slave-soft-seconds

对于 Redis 只OSS读副本:如果客户端的输出缓冲区保持client-output-buffer-limit-replica-soft-limit字节的时间超过此秒数,则客户端将断开连接。
replica-allow-chaining

默认值:no

类型:字符串

可修改:否

以前的名字: slave-allow-chaining

确定 Redis 中的只读副本是否OSS可以拥有自己的只读副本。
min-replicas-to-write

默认:0

类型:整数

可修改:是

以前的名字: min-slaves-to-write

更改生效:立即

使主节点可以从客户端接受写入所必需的可用只读副本的最小数目。如果可用副本数下降到低于此数字,则主节点不再接受写入请求。

如果此参数或 min-replicas-max-lag为 0,则即使没有副本可用,主节点也将始终接受写入请求。

min-replicas-max-lag

默认值:10

类型:整数

可修改:是

以前的名字: min-slaves-max-lag

更改生效:立即

主节点必须从只读副本收到 Ping 请求的秒数。如果此时间量已过,但主节点未收到 Ping,则不再将副本视为可用。如果可用副本的数量降至以下 min-replicas-to-write,则主副本将在此时停止接受写入。

如果此参数或 min-replicas-to-write为 0,则即使没有副本可用,主节点也将始终接受写入请求。

close-on-replica-write

默认值:yes

类型:布尔值

可修改:是

以前的名字: close-on-slave-write

更改生效:立即

如果启用,尝试写入只读副本的客户端将会断开连接。

在 Redis OSS 5.0 中删除了参数
名称 详细信息 描述
repl-timeout

默认值:60

可修改:否

此版本中不提供参数。

Redis OSS 4.0.10 参数发生了变化

参数组系列: redis4.0

Redis OSS 4.0.x 默认参数组

  • default.redis4.0— 将此参数组或从中派生的参数组用于 Valkey 或 RedisOSS(已禁用集群模式)集群和复制组。

  • default.redis4.0.cluster.on— 将此参数组或从中派生的参数组用于 Valkey 或 RedisOSS(已启用集群模式)集群和复制组。

在 Redis OSS 4.0.10 中更改了参数
名称 详细信息 描述
maxmemory-policy

允许的值:allkeys-lruvolatile-lruallkeys-lfuvolatile-lfuallkeys-randomvolatile-randomvolatile-ttlnoeviction

默认值:volatile-lru

类型:字符串

可修改:是

发生更改:立即

在 2.6.13 版中增加了 maxmemory-policy。在版本4.0.10中,添加了两个新的允许值:allkeys-lfu,它将使用近似值驱逐任何密钥LFU,以及volatile-lfu使用近似值在设置了过期的密钥LFU中使用近似值进行驱逐。在 6.2 版中,在推出 r6gd 节点系列以支持数据分层功能时,r6gd 节点类型仅支持 noevictionvolatile-lruallkeys-lru max-memory 策略
在 Redis 4.0.10 中添加的OSS参数
名称 详细信息 描述
异步删除参数
lazyfree-lazy-eviction

允许的值:yes/no

默认值:no

类型:布尔值

可修改:是

发生更改:立即

对移出执行异步删除。
lazyfree-lazy-expire

允许的值:yes/no

默认值:no

类型:布尔值

可修改:是

发生更改:立即

对已过期密钥执行异步删除。
lazyfree-lazy-server-del

允许的值:yes/no

默认值:no

类型:布尔值

可修改:是

发生更改:立即

对更新值的命令执行异步删除。
slave-lazy-flush

允许的值:N/A

默认值:no

类型:布尔值

可修改:否

发生更改:N/A
在从属同步期间执行异步 flushDB。
LFU参数
lfu-log-factor

允许的值:任意整数 > 0

默认值:10

类型:整数

可修改:是

发生更改:立即

设置日志因素,这确定键命中数以使键计数器饱和。
lfu-decay-time

允许的值:任意整数

默认值:1

类型:整数

可修改:是

发生更改:立即

减少键计数器的时间,以分钟为单位。
有效的碎片整理参数
activedefrag

允许的值:yes/no

默认值:no

类型:布尔值

可修改:是

发生更改:立即

已启用有效的碎片整理。
active-defrag-ignore-bytes

允许的值:10485760 – 104857600

默认值:104857600

类型:整数

可修改:是

发生更改:立即

启动有效碎片整理的碎片垃圾最低量。
active-defrag-threshold-lower

允许的值:1-100

默认值:10

类型:整数

可修改:是

发生更改:立即

启动有效碎片整理的碎片最低百分比。
active-defrag-threshold-upper

允许的值:1-100

默认值:100

类型:整数

可修改:是

发生更改:立即

我们使用最大精力的碎片最高百分比。
active-defrag-cycle-min

允许的值:1-75

默认值:25

类型:整数

可修改:是

发生更改:立即

碎片整理工作量最小,以百分比表示CPU。
active-defrag-cycle-max

允许的值:1-75

默认值:75

类型:整数

可修改:是

发生更改:立即

碎片整理的最大工作量(以百分比表示)。CPU
客户端输出缓冲区参数
client-query-buffer-limit

允许的值:1048576 – 1073741824

默认值:1073741824

类型:整数

可修改:是

发生更改:立即

单个客户端查询缓冲区的最大大小。
proto-max-bulk-len

允许的值:1048576 – 536870912

默认值:536870912

类型:整数

可修改:是

发生更改:立即

单个元素请求的最大大小。

Redis OSS 3.2.10 参数发生了变化

参数组系列: redis3.2

ElastiCache (RedisOSS) 3.2.10 不支持其他参数。

Redis OSS 3.2.6 参数发生了变化

参数组系列: redis3.2

对于 Redis OSS 3.2.6,不支持其他参数。

Redis OSS 3.2.4 参数发生了变化

参数组系列: redis3.2

从 Redis OSS 3.2.4 开始,有两个默认参数组。

  • default.redis3.2— 运行 Redis OSS 3.2.4 时,如果您要创建 Valkey 或 RedisOSS(已禁用集群模式)复制组并仍然使用 Redis 3.2.4 的其他功能,请指定此参数组或从该参数组派生的参数组。OSS

  • default.redis3.2.cluster.on— 当您要创建 Valkey 或 RedisOSS(已启用集群模式)复制组时,请指定此参数组或从中派生的参数组。

Redis 3.2.4 OSS 的新参数

参数组系列: redis3.2

对于 Redis OSS 3.2.4,支持以下附加参数。

名称 详细信息 描述
list-max-ziplist-size

默认值:-2

类型:整数

可修改:否

将采用特殊方式对列表进行编码以节省空间。可将每个内部列表节点允许的条目数指定为固定的最大大小或最大元素数。对于固定最大大小,请使用数字 -5 到 -1,含义如下:
  • -5:最大大小:64 Kb - 对于一般工作负载,不推荐使用

  • -4:最大大小:32 Kb - 不推荐

  • -3:最大大小:16 Kb - 不推荐

  • -2:最大大小:8 Kb - 推荐

  • -1:最大大小:4 Kb - 推荐

  • 正数表示每节点存储最多该数目的元素。

list-compress-depth

默认:0

类型:整数

可修改:是

更改生效:立即

也可以压缩列表。压缩深度是要从压缩中排除的列表各端的 quicklist ziplist 节点的数目。始终不会压缩列表的首尾以便执行快速推送和弹出操作。设置为:
  • 0:禁止所有压缩。

  • 1:从首尾开始将第一个节点压缩到列表中。

    [head]->node->node->...->node->[tail]

    压缩除 [head] 和 [tail] 以外的所有节点。

  • 2:从首尾开始将第二个节点压缩到列表中。

    [head]->[next]->node->node->...->node->[prev]->[tail]

    [head]、[next]、[prev]、[tail] 不压缩。压缩所有其他节点。

  • 等等

cluster-enabled

默认值:否/是 *

类型:字符串

可修改:否

表示这是集群模式下的 Valkey 还是 RedisOSS(已启用集群模式)复制组(是),还是非集群模式下的 Valkey 或 RedisOSS(已启用集群模式)复制组(否)。集群模式下的 Valkey 或 RedisOSS(已启用集群模式)复制组可以将其数据分成多达 500 个节点组。

* Redis OSS 3.2。 x 有两个默认参数组。

  • default.redis3.2 – 默认值 no

  • default.redis3.2.cluster.on – 默认值 yes

.

cluster-require-full-coverage

默认值:no

类型:布尔值

可修改:是

更改生效:立即

设置为时yes,处于集群模式的 Valkey 或 RedisOSS(已启用集群模式)节点如果检测到至少有一个未发现的哈希槽(没有可用的节点在为其提供服务),则它们将停止接受查询。因此,如果集群部分出现故障,则整个集群将不可用。只要所有槽全都覆盖到,它就会自动恢复可用。

但有时,您需要让集群的子集能够继续接受仍覆盖到的键空间部分的查询。为此,请将 cluster-require-full-coverage 选项设为 no

hll-sparse-max-bytes

默认值:3000

类型:整数

可修改:是

更改生效:立即

HyperLogLog 稀疏表示字节限制。限制包括 16 个字节的标头。当 HyperLogLog 使用稀疏表示超过此限制时,它将转换为密集表示。

不建议使用超过 16000 的值,因为此时密集表现形式具有更高的内存效率。

我们建议使用大约 3000 的值,这样既能节省空间的编码,又不会减慢PFADD太大的速度,对于稀疏编码来说,这是 O (N)。当不考虑空间时CPU,可以将该值提高到大约 10000,并且数据集由许多 HyperLogLogs 基数在 0-15000 范围内的数据集组成。

reserved-memory-percent

默认值:25

类型:整数

可修改:是

更改生效:立即

为非数据使用预留的节点内存的百分比。默认情况下,Redis OSS 的数据占用量会不断增长,直到它消耗掉节点的所有内存。如果发生这种情况,可能会因内存分页过多而影响节点性能。通过预留内存,您可以预留一些可用内存用于非 Redis OSS 用途,以帮助减少分页量。

此参数特定于标准 Redis 发行版 ElastiCache,不属于标准 Redis OSS 发行版的一部分。

有关更多信息,请参阅reserved-memory管理 Valkey 和 Redis 的预留内存 OSS

在 Redis OSS 3.2.4 中更改了参数(增强版)

参数组系列: redis3.2

对于 Redis OSS 3.2.4,以下参数已更改。

名称 详细信息 更改
activerehashing

可修改:如果参数组未与任何缓存群集关联,则为“是”。否则不是必需。

可修改:否。

databases

可修改:如果参数组未与任何缓存群集关联,则为“是”。否则不是必需。

可修改:否。

appendonly

默认:关闭

可修改:否

如果要从较早的 Redis OSS 版本升级,则必须先将其appendonly关闭。

appendfsync

默认:关闭

可修改:否

如果要从较早的 Redis OSS 版本升级,则必须先将其appendfsync关闭。

repl-timeout

默认值:60

可修改:否

目前无法修改,默认值为 60。
tcp-keepalive

默认:300

默认值为 0。

list-max-ziplist-entries

参数不再可用。

list-max-ziplist-value

参数不再可用。

Redis OSS 2.8.24(增强版)新增参数

参数组系列: redis2.8

对于 Redis OSS 2.8.24,不支持其他参数。

Redis OSS 2.8.23(增强版)新增参数

参数组系列: redis2.8

对于 Redis OSS 2.8.23,支持以下附加参数。

名称 详细信息 描述
close-on-slave-write

默认值:yes

类型:字符串(yes/no)

可修改:是

更改生效:立即

如果启用,尝试写入只读副本的客户端将会断开连接。

如何 close-on-slave-write运作

close-on-slave-write参数由 Amazon ElastiCache 引入,可让您更好地控制集群在主节点和只读副本节点因将只读副本提升为主节点而交换角色时群集的响应方式。

图片: close-on-replica-write,一切正常

如果出于支持多可用区的复制组发生故障转移之外的任何其他原因,只读副本集群提升为主集群,则客户端将继续尝试写入端点 A。由于端点现在是只读副本的端点,这些写入将会失败。这是 Redis OSS 在ElastiCache 引入之前的行为,close-on-replica-write以及禁close-on-replica-write用后的行为。

图片: close-on-slave-write,写入失败

在启用 close-on-replica-write 的情况下,只要客户端尝试写入只读副本,客户端与集群的连接就会被关闭。您的应用程序逻辑应检测断开连接,检查DNS表,然后重新连接到主终端节点(现在是端点 B)

Image: close-on-slave-write,正在写入新的主群集

何时可以禁用 close-on-replica-write

如果禁用 close-on-replica-write 会导致写入集群的操作失败,那么为什么禁用 close-on-replica-write

如前所述,在启用 close-on-replica-write 的情况下,只要客户端尝试写入只读副本,客户端与集群的连接就会被关闭。建立与节点的新连接需要时间。因此,由于对副本的写入请求而断开连接并重新连接也会影响通过相同连接处理的读取请求的延迟。在建立新连接之前,此影响会持续存在。如果您的应用程序主要执行大量读取操作或者对延迟非常敏感,您可能使客户端保持连接,以避免降低读取性能。

Redis OSS 2.8.22(增强版)新增参数

参数组系列: redis2.8

对于 Redis OSS 2.8.22,不支持其他参数。

重要
  • 从 Redis OSS 版本 2.8.22 开始,repl-backlog-size适用于主集群和副本集群。

  • 从 Redis OSS 版本 2.8.22 开始,不支持该repl-timeout参数。如果它被更改, ElastiCache 将像我们一样用默认值(60 秒)覆盖。appendonly

不再支持以下参数。

  • appendonly

  • appendfsync

  • repl-timeout

Redis OSS 2.8.21 添加了参数

参数组系列: redis2.8

对于 Redis OSS 2.8.21,不支持其他参数。

Redis OSS 2.8.19 添加了参数

参数组系列: redis2.8

对于 Redis OSS 2.8.19,不支持其他参数。

Redis OSS 2.8.6 添加了参数

参数组系列: redis2.8

对于 Redis OSS 2.8.6,支持以下附加参数。

名称 详细信息 描述
min-slaves-max-lag

默认值:10

类型:整数

可修改:是

更改生效:立即

主节点必须从只读副本收到 Ping 请求的秒数。如果此时间量已过,但主节点未收到 Ping,则不再将副本视为可用。如果可用副本的数量降至以下 min-slaves-to-write,则主副本将在此时停止接受写入。

如果此参数或 min-slaves-to-write为 0,则即使没有副本可用,主节点也将始终接受写入请求。

min-slaves-to-write

默认:0

类型:整数

可修改:是

更改生效:立即

使主节点可以从客户端接受写入所必需的可用只读副本的最小数目。如果可用副本数下降到低于此数字,则主节点不再接受写入请求。

如果此参数或 min-slaves-max-lag为 0,则即使没有副本可用,主节点也将始终接受写入请求。

notify-keyspace-events

默认值:(空字符串)

类型:字符串

可修改:是

更改生效:立即

Redis OSS 可以通知客户端的密钥空间事件的类型。每种事件类型由单个字母表示:

  • K – 键空间事件,发布时带有前缀 __keyspace@<db>__

  • E – 键事件类型事件,发布时带有前缀 __keyevent@<db>__

  • g-通用、非特定命令 DEL,例如、EXPIRERENAME、等。

  • $ – 字符串命令

  • l – 列表命令

  • s – 集命令

  • h – 哈希命令

  • z – 排序集命令

  • x – 过期事件(每次键过期时生成的事件)

  • e – 移出事件(针对 maxmemory 移出键时生成的事件)

  • Ag$lshzxe 的别名

您可以使用这些事件类型的任何组合。例如,AKE意味着 Redis OSS 可以发布所有事件类型的通知。

请勿使用上面未列出的任何字符;尝试这样操作会导致错误消息。

默认情况下,此参数设置为空字符串,这表示禁用了键空间事件通知。

repl-backlog-size

默认值:1048576

类型:整数

可修改:是

更改生效:立即

主节点积压缓冲区的大小(以字节为单位)。积压用于记录主节点上数据的更新。只读副本连接到主节点时,它尝试执行部分同步(psync),其中它应用积压中的数据以与主节点同步。如果 psync 失败,则需要完整同步。

此参数的最小值为 16384。

注意

从 Redis OSS 2.8.22 开始,此参数适用于主集群和只读副本。

repl-backlog-ttl

默认值:3600

类型:整数

可修改:是

更改生效:立即

主节点保留积压缓冲区的秒数。从上一个副本节点断开连接时开始,积压中的数据将保持不变,直到 repl-backlog-ttl 过期。如果副本未在此时间内连接到主节点,则主节点会释放积压缓冲区。当副本最终重新连接时,它必须执行与主节点的完整同步。

如果此参数设置为 0,则永不释放积压缓冲区。

repl-timeout

默认值:60

类型:整数

可修改:是

更改生效:立即

表示超时期限(以秒为单位),适用于:
  • 同步过程中的批量数据传输(从只读副本的角度)

  • 主节点超时(从副本的角度)

  • 副本超时(从主节点的角度)

Redis OSS 2.6.13 参数

参数组系列: redis2.6

Redis OSS 2.6.13 是第一个支持的 Redis OSS 版本。 ElastiCache下表显示了支持的 Redis OSS 2.6.13 参数。 ElastiCache

名称 详细信息 描述
activerehashing

默认值:yes

类型:字符串(yes/no)

可修改:是

发生更改:在创建时

确定是否启用 Redis 的活动重新哈希功能。主哈希表每秒被重新哈希十次;每次重新哈希操作消耗 1 毫秒的时间。CPU

在创建参数组时设置此值。向集群分配新参数组时,此值在旧参数组和新参数组中必须相同。

appendonly

默认值:no

类型:字符串

可修改:是

更改生效:立即

启用或禁用 Redis 的仅追加文件功能 ()。AOFAOF捕获更改缓存中数据的任何 Redis OSS 命令,并用于从某些节点故障中恢复。

默认值为 n o,表示AOF已关闭。将此参数设置为 yes 即可启用AOF。

有关更多信息,请参阅 缓解故障

注意

cache.t1.micro 和 cache.t2.* 节点不支持 “仅追加文件” (AOF)。对于此类型的节点,将忽略 appendonly 参数值。

注意

对于多可用区复制组,AOF不允许。

appendfsync

默认值:everysec

类型:字符串

可修改:是

更改生效:立即

如果设置appendonly为 yes,则控制将AOF输出缓冲区写入磁盘的频率:
  • no – 缓冲区根据需要刷新到磁盘中。

  • everysec – 缓冲区每秒刷新一次。这是默认模式。

  • always – 每当集群中的数据有修改时,缓冲区便会进行刷新。

  • 2.8.22 及更高版本不支持 Appendfsync。

client-output-buffer-limit-normal-hard-limit

默认:0

类型:整数

可修改:是

更改生效:立即

如果客户端的输出缓冲区达到指定字节数,则客户端将断开连接。默认值为零(没有硬限制)。

client-output-buffer-limit-normal-soft-limit

默认:0

类型:整数

可修改:是

更改生效:立即

如果客户端的输出缓冲区达到指定字节数,则客户端将断开连接,但是仅当此条件保持 client-output-buffer-limit-normal-soft-seconds 时间时。默认值为零(没有软限制)。
client-output-buffer-limit-normal-soft-seconds

默认:0

类型:整数

可修改:是

更改生效:立即

如果客户端的输出缓冲区保持 client-output-buffer-limit-normal-soft-limit 字节的时间长于此秒数,则客户端将断开连接。默认值为零(没有时间限制)。
client-output-buffer-limit-pubsub-hard-limit

默认值:33554432

类型:整数

可修改:是

更改生效:立即

对于 Redis OSS 发布/订阅客户端:如果客户端的输出缓冲区达到指定的字节数,则客户端将断开连接。

client-output-buffer-limit-pubsub-soft-limit

默认值:8388608

类型:整数

可修改:是

更改生效:立即

对于 Redis OSS 发布/订阅客户端:如果客户端的输出缓冲区达到指定的字节数,则客户端将断开连接,但前提是这种情况持续存在。client-output-buffer-limit-pubsub-soft-seconds
client-output-buffer-limit-pubsub-soft-seconds

默认值:60

类型:整数

可修改:是

更改生效:立即

对于 Redis OSS 发布/订阅客户端:如果客户端的输出缓冲区保持client-output-buffer-limit-pubsub-soft-limit字节的时间超过此秒数,则客户端将断开连接。
client-output-buffer-limit-slave-hard-limit

默认值:有关值的信息,请参阅 Redis OSS 节点类型的特定参数

类型:整数

可修改:否

对于 Redis 只OSS读副本:如果客户端的输出缓冲区达到指定的字节数,则客户端将断开连接。
client-output-buffer-limit-slave-soft-limit

默认值:有关值的信息,请参阅 Redis OSS 节点类型的特定参数

类型:整数

可修改:否

对于 Redis 只OSS读副本:如果客户端的输出缓冲区达到指定的字节数,则客户端将断开连接,但前提是这种情况持续存在。client-output-buffer-limit-slave-soft-seconds
client-output-buffer-limit-slave-soft-seconds

默认值:60

类型:整数

可修改:否

对于 Redis 只OSS读副本:如果客户端的输出缓冲区保持client-output-buffer-limit-slave-soft-limit字节的时间超过此秒数,则客户端将断开连接。
databases

默认值:16

类型:整数

可修改:否

发生更改:在创建时

数据库拆分到的逻辑分区的数量。建议将此值保持较低。

在创建参数组时设置此值。向集群分配新参数组时,此值在旧参数组和新参数组中必须相同。

hash-max-ziplist-entries

默认值:512

类型:整数

可修改:是

更改生效:立即

确定用于哈希的内存量。条目少于指定数量的哈希使用节省空间的特殊编码进行存储。
hash-max-ziplist-value

默认值:64

类型:整数

可修改:是

更改生效:立即

确定用于哈希的内存量。条目小于指定字节数的哈希使用节省空间的特殊编码进行存储。
list-max-ziplist-entries

默认值:512

类型:整数

可修改:是

更改生效:立即

确定用于列表的内存量。条目少于指定数量的列表使用节省空间的特殊编码进行存储。
list-max-ziplist-value

默认值:64

类型:整数

可修改:是

更改生效:立即

确定用于列表的内存量。条目小于指定字节数的列表使用节省空间的特殊编码进行存储。
lua-time-limit

默认值:5000

类型:整数

可修改:否

Lua 脚本在采取行动停止脚本之前 ElastiCache 的最大执行时间,以毫秒为单位。

如果超过lua-time-limit该值,则所有 Redis OSS 命令都将返回 ____- 形式的错误。BUSY由于这种状态可能会干扰许多基本的 Redis OSS 操作,因此 ElastiCache 将首先发出SCRIPTKILL命令。如果不成功, ElastiCache 将强制重启 Redis OSS。

maxclients 除明确指定的外,此值适用于所有实例类型

默认值:65000

类型:整数

可修改:否

可以一次连接的最大客户端连接数。

t2.medium 原定设置:20000

类型:整数

可修改:否

t2.small 原定设置:20000

类型:整数

可修改:否

t2.micro 原定设置:20000

类型:整数

可修改:否

t4g.micro 原定设置:20000

类型:整数

可修改:否

t3.medium 原定设置:46000

类型:整数

可修改:否

t3.small 原定设置:46000

类型:整数

可修改:否

t3.micro 原定设置:20000

类型:整数

可修改:否

maxmemory-policy

默认值:volatile-lru

类型:字符串

可修改:是

更改生效:立即

达到最大内存使用率时密钥的移出策略。

有效值为:volatile-lru | allkeys-lru | volatile-random | allkeys-random | volatile-ttl | noeviction

有关更多信息,请参阅使用 Valkey 或 Redis OSS 作为缓存。LRU

maxmemory-samples

原定设置值:3

类型:整数

可修改:是

更改生效:立即

对于 least-recently-used (LRU) 和 time-to-live (TTL) 计算,此参数表示要检查的密钥的样本量。默认情况下,Redis OSS 会选择 3 个密钥并使用最近最少使用的密钥。
reserved-memory

默认:0

类型:整数

可修改:是

更改生效:立即

为非数据使用预留的内存总量,以字节为单位。默认情况下,Redis OSS 节点将一直增长,直到它消耗该节点的节点maxmemory(参见Redis OSS 节点类型的特定参数)。如果发生这种情况,可能会因内存分页过多而影响节点性能。通过预留内存,您可以预留一些可用内存用于非 Redis OSS 用途,以帮助减少分页量。

此参数特定于标准 Redis 发行版 ElastiCache,不属于标准 Redis OSS 发行版的一部分。

有关更多信息,请参阅reserved-memory-percent管理 Valkey 和 Redis 的预留内存 OSS

set-max-intset-entries

默认值:512

类型:整数

可修改:是

更改生效:立即

确定用于特定类型的集(在 64 位有符号整数的范围内,以 10 为基数的整数表示的字符串)的内存量。条目少于指定数量的这类集使用节省空间的特殊编码进行存储。
slave-allow-chaining

默认值:no

类型:字符串

可修改:否

确定 Redis 中的只读副本是否OSS可以拥有自己的只读副本。
slowlog-log-slower-than

默认值:10000

类型:整数

可修改:是

更改生效:立即

Redis OSS 慢速日志功能记录命令的最大执行时间(以微秒为单位)。
slowlog-max-len

默认值:128

类型:整数

可修改:是

更改生效:立即

Redis OSS 慢日志的最大长度。
tcp-keepalive

默认:0

类型:整数

可修改:是

更改生效:立即

如果此参数设置为非零值(N),则节点客户端会每 N 秒轮询一次,以确保它们仍然连接。对于默认设置 0,不进行这种轮询。
重要

在 Redis OSS 版本 3.2.4 中,此参数的某些方面发生了变化。请参阅 在 Redis OSS 3.2.4 中更改了参数(增强版)

timeout

默认:0

类型:整数

可修改:是

更改生效:立即

节点在超时之前等待的秒数。值为:
  • 0 – 从不断开空闲客户端。

  • 1-19 – 无效值。

  • >=20 – 节点在断开空闲客户端之前等待的秒数。

zset-max-ziplist-entries

默认值:128

类型:整数

可修改:是

更改生效:立即

确定用于排序集的内存量。元素少于指定数量的排序集使用节省空间的特殊编码进行存储。
zset-max-ziplist-value

默认值:64

类型:整数

可修改:是

更改生效:立即

确定用于排序集的内存量。条目小于指定字节数的排序集使用节省空间的特殊编码进行存储。
注意

如果您没有为 Redis OSS 2.6.13 集群指定参数组,则将使用默认参数组 (default.redis2.6)。您不能在默认的参数组中更改任何参数的值;但是,您始终可以创建自定义参数组,然后随时将其分配给您的集群。

Redis OSS 节点类型的特定参数

虽然大多数参数具有单个值,但是某些参数根据使用的节点类型具有不同的值。下表显示了每种节点类型的 maxmemoryclient-output-buffer-limit-slave-hard-limitclient-output-buffer-limit-slave-soft-limit 参数的默认值。maxmemory 的值是节点上可供您使用(数据和其他用途)的最大字节数。有关更多信息,请参阅可用内存

注意

无法修改 maxmemory 参数。

节点类型 Maxmemory C lient-output-buffer-limit-slave-hard-limit C lient-output-buffer-limit-slave-soft-limit
cache.t1.micro 142606336 14260633 14260633
cache.t2.micro 581959680 58195968 58195968
cache.t2.small 1665138688 166513868 166513868
cache.t2.medium 3461349376 346134937 346134937
cache.t3.micro 536870912 53687091 53687091
cache.t3.small 1471026299 147102629 147102629
cache.t3.medium 3317862236 331786223 331786223
cache.t4g.micro 536870912 53687091 53687091
cache.t4g.small 1471026299 147102629 147102629
cache.t4g.medium 3317862236 331786223 331786223
cache.m1.small 943718400 94371840 94371840
cache.m1.medium 3093299200 309329920 309329920
cache.m1.large 7025459200 702545920 702545920
cache.m1.xlarge 14889779200 1488977920 1488977920
cache.m2.xlarge 17091788800 1709178880 1709178880
cache.m2.2xlarge 35022438400 3502243840 3502243840
cache.m2.4xlarge 70883737600 7088373760 7088373760
cache.m3.medium 2988441600 309329920 309329920
cache.m3.large 6501171200 650117120 650117120
cache.m3.xlarge 14260633600 1426063360 1426063360
cache.m3.2xlarge 29989273600 2998927360 2998927360
cache.m4.large 6892593152 689259315 689259315
cache.m4.xlarge 15328501760 1532850176 1532850176
cache.m4.2xlarge 31889126359 3188912636 3188912636
cache.m4.4xlarge 65257290629 6525729063 6525729063
cache.m4.10xlarge 166047614239 16604761424 16604761424
cache.m5.large 6854542746 685454275 685454275
cache.m5.xlarge 13891921715 1389192172 1389192172
cache.m5.2xlarge 27966669210 2796666921 2796666921
cache.m5.4xlarge 56116178125 5611617812 5611617812
cache.m5.12xlarge 168715971994 16871597199 16871597199
cache.m5.24xlarge 337500562842 33750056284 33750056284
cache.m6g.large 6854542746 685454275 685454275
cache.m6g.xlarge 13891921715 1389192172 1389192172
cache.m6g.2xlarge 27966669210 2796666921 2796666921
cache.m6g.4xlarge 56116178125 5611617812 5611617812
cache.m6g.8xlarge 111325552312 11132555231 11132555231
cache.m6g.12xlarge 168715971994 16871597199 16871597199
cache.m6g.16xlarge 225000375228 22500037523 22500037523
cache.c1.xlarge 6501171200 650117120 650117120
cache.r3.large 14470348800 1468006400 1468006400
cache.r3.xlarge 30513561600 3040870400 3040870400
cache.r3.2xlarge 62495129600 6081740800 6081740800
cache.r3.4xlarge 126458265600 12268339200 12268339200
cache.r3.8xlarge 254384537600 24536678400 24536678400
cache.r4.large 13201781556 1320178155 1320178155
cache.r4.xlarge 26898228839 2689822883 2689822883
cache.r4.2xlarge 54197537997 5419753799 5419753799
cache.r4.4xlarge 108858546586 10885854658 10885854658
cache.r4.8xlarge 218255432090 21825543209 21825543209
cache.r4.16xlarge 437021573120 43702157312 43702157312
cache.r5.large 14037181030 1403718103 1403718103
cache.r5.xlarge 28261849702 2826184970 2826184970
cache.r5.2xlarge 56711183565 5671118356 5671118356
cache.r5.4xlarge 113609865216 11360986522 11360986522
cache.r5.12xlarge 341206346547 34120634655 34120634655
cache.r5.24xlarge 682485973811 68248597381 68248597381
cache.r6g.large 14037181030 1403718103 1403718103
cache.r6g.xlarge 28261849702 2826184970 2826184970
cache.r6g.2xlarge 56711183565 5671118356 5671118356
cache.r6g.4xlarge 113609865216 11360986522 11360986522
cache.r6g.8xlarge 225000375228 22500037523 22500037523
cache.r6g.12xlarge 341206346547 34120634655 34120634655
cache.r6g.16xlarge 450000750456 45000075046 45000075046
cache.r6gd.xlarge 28261849702 2826184970 2826184970
cache.r6gd.2xlarge 56711183565 5671118356 5671118356
cache.r6gd.4xlarge 113609865216 11360986522 11360986522
cache.r6gd.8xlarge 225000375228 22500037523 22500037523
cache.r6gd.12xlarge 341206346547 34120634655 34120634655
cache.r6gd.16xlarge 450000750456 45000075046 45000075046
cache.r7g.large 14037181030 1403718103 1403718103
cache.r7g.xlarge 28261849702 2826184970 2826184970
cache.r7g.2xlarge 56711183565 5671118356 5671118356
cache.r7g.4xlarge 113609865216 11360986522 11360986522
cache.r7g.8xlarge 225000375228 22500037523 22500037523
cache.r7g.12xlarge 341206346547 34120634655 34120634655
cache.r7g.16xlarge 450000750456 45000075046 45000075046
cache.m7g.large 6854542746 685454275 685454275
cache.m7g.xlarge 13891921715 1389192172 1389192172
cache.m7g.2xlarge 27966669210 2796666921 2796666921
cache.m7g.4xlarge 56116178125 5611617812 5611617812
cache.m7g.8xlarge 111325552312 11132555231 11132555231
cache.m7g.12xlarge 168715971994 16871597199 16871597199
cache.m7g.16xlarge 225000375228 22500037523 22500037523
cache.c7gn.large 3317862236 1403718103 1403718103
cache.c7gn.xlarge 6854542746 2826184970 2826184970
cache.c7gn.2xlarge 13891921715 5671118356 5671118356
cache.c7gn.4xlarge 27966669210 11360986522 11360986522
cache.c7gn.8xlarge 56116178125 22500037523 22500037523
cache.c7gn.12xlarge 84357985997 34120634655 34120634655
cache.c7gn.16xlarge 113609865216 45000075046 45000075046
注意

默认情况下,所有当前一代的实例类型都是在亚马逊虚拟私有云(Amazon Virtual Private Cloud)中创建VPC的。

T1 实例不支持多可用区。

T1 和 T2 实例不支持 Redis。OSS AOF

Redis OSS 配置变量appendonly,Redis OSS 版本 2.8.22 及appendfsync更高版本不支持。

Memcached 特定的参数

内存缓存

如果您没有为 Memcached 集群指定参数组,则将使用适合您引擎版本的默认参数组。您无法更改默认参数组中的任何参数的值。但是,您可以随时创建自定义参数组并将其分配给集群。有关更多信息,请参阅 创建 ElastiCache 参数组

Memcached 1.6.17 更改

从 Memcached 1.6.17 开始,我们不再支持以下管理命令:lru_crawlerlruslabs。鉴于这些更改,您将无法在运行时系统中通过命令启用/禁用 lru_crawler。请通过修改您的自定义参数组来启用/禁用 lru_crawler

Memcached 1.6.6 增加的参数

对于 Memcached 1.6.6,不支持任何附加参数。

参数组系列:memcached1.6

Memcached 1.5.10 参数更改

对于 Memcached 1.5.10,支持以下附加参数。

参数组系列:memcached1.5

名称 详细信息 描述
no_modern

默认值:1

类型:布尔值

可修改:是

允许的值:0,1

更改生效:启动时

用于禁用slab_reassignlru_maintainer_threadlru_segmented、和maxconns_fast命令的别名。

使用 Memcached 1.5 及更高版本时,no_modern还要将哈希算法设置为。jenkins

此外,在使用 Memcached 1.5.10 时,inline_ascii_reponse由参数控制。parallelly这意味着,如果禁no_modern用,inline_ascii_reponse则禁用。从 Memcached 引擎 1.5.16 起,该inline_ascii_response参数不再适用,因此启用no_modern或禁用不会产生任何影响。inline_ascii_reponse

如果no_modern已禁用slab_reassign,则lru_maintainer_threadlru_segmented、并启maxconns_fastWILL用。由于slab_automovehash_algorithm参数不是SWITCH参数,因此它们的设置基于参数组中的配置。

如果要禁用no_modern并恢复为modern,则必须配置自定义参数组以禁用此参数,然后重新启动才能使这些更改生效。

注意

自 2021 年 8 月 20 日起,此参数的原定设置配置值已从 0 改为 1。2021 年 8 月 20 日之后,每个地区的新ElastiCache 用户将自动选择更新的默认值。2021 年 8 月 20 日之前所在地区的现有 ElastiCache 用户需要手动修改其自定义参数组才能接受这一新更改。

inline_ascii_resp

默认:0

类型:布尔值

可修改:是

允许的值:0,1

更改生效:启动时

存储项中的 VALUE 响应的数字,最多使用 24 个字节。减速幅度很小 ASCIIgetfaster套装。

对于 Memcached 1.5.10,删除了以下参数。

名称 详细信息 描述
expirezero_does_not_evict

默认:0

类型:布尔值

可修改:是

允许的值:0,1

更改生效:启动时

在此版本中不再受支持。

modern

默认值:1

类型:布尔值

可修改:是(如果设置为 no_modern,则需要重新启动)

允许的值:0,1

更改生效:启动时

在此版本中不再受支持。从此版本开始,默认情况下,每次启动或重新启动时都会启用 no-modern

Memcached 1.4.34 增加的参数

对于 Memcached 1.4.34,不支持任何附加参数。

参数组系列: memcached1.4

Memcached 1.4.33 增加的参数

对于 Memcached 1.4.33,支持以下附加参数。

参数组系列: memcached1.4

名称 详细信息 描述
modern

默认值:启用

类型:布尔值

可修改:是

更改生效:启动时

访问多项功能的别名。启用 modern 等同于启用以下命令并使用 murmur3 哈希算法:slab_reassignslab_automovelru_crawlerlru_maintainermaxconns_fasthash_algorithm=murmur3

watch

默认值:启用

类型:布尔值

可修改:是

更改生效:立即

在用户达到其 watcher_logbuf_sizeworker_logbuf_size 限制时可以删除日志。

日志提取、移出或更改。例如,在用户启用 watch 时,出现 getsetdeleteupdate 的情况下可以查看日志。

idle_timeout

默认值:0(禁用)

类型:整数

可修改:是

更改生效:启动时

在要求关闭客户端之前,允许客户端保持空闲的最短秒数。取值范围:0 到 86400。

track_sizes

默认值:禁用

类型:布尔值

可修改:是

更改生效:启动时

显示每个 slab 组已用的大小。

启用 track_sizes 可让您运行 stats sizes 而无需运行 stats sizes_enable

watcher_logbuf_size

默认值:256 (KB)

类型:整数

可修改:是

更改生效:启动时

watch 命令启用 Memcached 的流日志记录。但是,在移出、更改或提取速率足够高而导致了日志记录缓冲区满填满时,watch 可以删除日志。在这些情况下,用户可以增加缓冲区大小以减少日志丢失的可能性。

worker_logbuf_size

默认值:64 (KB)

类型:整数

可修改:是

更改生效:启动时

watch 命令启用 Memcached 的流日志记录。但是,在移出、更改或提取速率足够高而导致了日志记录缓冲区满填满时,watch 可以删除日志。在这些情况下,用户可以增加缓冲区大小以减少日志丢失的可能性。

slab_chunk_max

默认值:524288 (字节)

类型:整数

可修改:是

更改生效:启动时

指定 slab 的最大大小。设置较小的 slab 大小可以更有效地使用内存。大于 slab_chunk_max 的项目将拆分为多个 slab。

lru_crawler metadump [all|1|2|3]

默认值:禁用

类型:布尔值

可修改:是

更改生效:立即

如果启用了 lru_crawler,则此命令会转储所有键。

all|1|2|3 - 所有 slab,或者指定特定 slab 编号

Memcached 1.4.24 增加的参数

对于 Memcached 1.4.24,支持以下附加参数。

参数组系列: memcached1.4

名称 详细信息 描述
disable_flush_all

默认值:0(禁用)

类型:布尔值

可修改:是

更改生效:启动时

添加参数 (-F) 以禁用 flush_all。如果您再也不想在生产实例上运行完全刷新,则这样做会很有用。

值:0,1(当值为 0 时,用户可以执行 flush_all)。

hash_algorithm

默认值:jenkins

类型:字符串

可修改:是

更改生效:启动时

要使用的哈希算法。允许的值:murmur3 和 jenkins。
lru_crawler

默认值:0(禁用)

类型:布尔值

可修改:是

更改生效:重新启动后

注意

您可在运行时通过命令行临时启用 lru_crawler。有关更多信息,请参阅“描述”列。

清除已过期的项目的 Slab 类。此过程在后台运行,并且产生的影响很小。目前要求使用手动命令来启用网络爬取。

要临时启用网络爬取,请在命令行处运行 lru_crawler enable

lru_crawler 1,3,5 对 Slab 类 1、3 和 5 进行网络爬取,以查找要添加到空闲列表的过期项目。

值:0,1

注意

在命令行处启用 lru_crawler 将启用爬网程序,直到在命令行处或下次重启时将其禁用。要永久性启用爬网程序,您必须修改参数值。有关更多信息,请参阅 修改 ElastiCache 参数组

lru_maintainer

默认值:0(禁用)

类型:布尔值

可修改:是

更改生效:启动时

一个后台线程,用于在达到容量时在LRUs之间随机播放项目。值:0,1。

expirezero_does_not_evict

默认值:0(禁用)

类型:布尔值

可修改:是

更改生效:启动时

在与 lru_maintainer 一起使用时,使过期时间为 0 的项目不可收回。

警告

这可以挤出内存以供其他可收回项目使用。

可以设置为忽略 lru_maintainer

Memcached 1.4.14 增加的参数

对于 Memcached 1.4.14,支持以下附加参数。

参数组系列: memcached1.4

Memcached 1.4.14 中添加的参数
名称 详细信息 描述
config_max

默认值:16

类型:整数

可修改:否

ElastiCache 配置条目的最大数量。
config_size_max

默认值:65536

类型:整数

可修改:否

配置条目的最大大小(单位:字节)。
hashpower_init

默认值:16

类型:整数

可修改:否

ElastiCache 哈希表的初始大小,以二的乘数表示。默认值为 16 (2^16) 或 65536 长度的密钥。
maxconns_fast

默认值:0 (false)

类型:布尔值

可修改:是

更改生效:重新启动后

在达到最大连接限制时,请更改处理新连接请求的方式。如果将此参数设为 0(即零),新连接将被添加至缓冲区队列,并将等待直到其他连接已关闭。如果参数设置为 1,则向客户端 ElastiCache 发送错误并立即关闭连接。
slab_automove

默认:0

类型:整数

可修改:是

更改生效:重新启动后

调整 Slab 自动移动算法:如果将此参数设为 0(即零),自动移动算法将禁用。如果将其设置为 1,则ElastiCache 采用缓慢而保守的方法来自动移动板。如果将其设置为 2,则每当有人驱逐时都会 ElastiCache 积极移动石板。(建议不要使用此模式,测试用途除外)。
slab_reassign

默认值:0 (false)

类型:布尔值

可修改:是

更改生效:重新启动后

启用或禁用 Slab 重新分配。如果将此参数设为 1,您可以使用“Slab 重新分配”命令来手动重新分配内存。

Memcached 1.4.5 支持的参数

参数组系列: memcached1.4

对于 Memcached 1.4.5,支持以下参数。

Memcached 1.4.5 中添加的参数
名称 详细信息 描述
backlog_queue_limit

默认值:1024

类型:整数

可修改:否

积压队列限制。
binding_protocol

默认值:auto

类型:字符串

可修改:是

更改生效:重新启动后

绑定协议。

允许的值为:asciiauto

有关修改 binding_protocol 的值的指南,请参阅修改 ElastiCache 参数组

cas_disabled

默认值:0 (false)

类型:布尔值

可修改:是

更改生效:重新启动后

如果为 1 (true),check 和 set (CAS) 操作将被禁用,存储的项目将比CAS启用时少 8 个字节。
chunk_size

默认值:48

类型:整数

可修改:是

更改生效:重新启动后

为最小项目的密钥、值和标志分配的最小空间量(以字节为单位)。
chunk_size_growth_factor

默认值:1.25

类型:浮点数

可修改:是

更改生效:重新启动后

控制各个连续 Memcached 区块的大小的增长系数;每个区块将比前一个区块大 chunk_size_growth_factor 倍。
error_on_memory_exhausted

默认值:0 (false)

类型:布尔值

可修改:是

更改生效:重新启动后

如果 1(为真),当没有更多的内存用于存储项目时,Memcached 将返回一个错误,而非移出项目。
large_memory_pages

默认值:0 (false)

类型:布尔值

可修改:否

如果 1 (true), ElastiCache 将尝试使用较大的内存页。
lock_down_paged_memory

默认值:0 (false)

类型:布尔值

可修改:否

如果 1 (true), ElastiCache 将锁定所有分页内存。
max_item_size

默认值:1048576

类型:整数

可修改:是

更改生效:重新启动后

可以存储在集群中的最大项目的大小(单位:字节)。
max_simultaneous_connections

默认值:65000

类型:整数

可修改:否

最大同时连接数。
maximize_core_file_limit

默认值:0 (false)

类型:布尔值

可修改:

更改生效:重新启动后

如果 1 (true), ElastiCache 将最大化核心文件限制。
memcached_connections_overhead

默认值:100

类型:整数

可修改:是

更改生效:重新启动后

为 Memcached 连接和其他杂项开支预留的内存量。有关此参数的信息,请参阅Memcached 连接开销
requests_per_event

默认值:20

类型:整数

可修改:否

每个事件请求获取给定连接的最大数量。此限制需要防止资源匮乏。

Memcached 连接开销

每个节点上可用于存储项目的内存计算方式为:此节点上的总可用内存(存储于 max_cache_memory 参数中)减去连接和其他开支所占用的内存(存储于 memcached_connections_overhead 参数中)。例如,cache.m1.small 类型的节点的 max_cache_memory 为 1300MB。memcached_connections_overhead 的默认值为 100MB,Memcached 进程可用于存储项目的内存则为 1200MB。

memcached_connections_overhead 参数的默认值满足大多数用例;然而,分配给连接开支的必需量会因多种因素(包括请求率、有效负载大小和连接数)而异。

您可以更改 memcached_connections_overhead 的值,以更好地满足您的应用程序的需求。例如,增大 memcached_connections_overhead 参数的值将减少用于存储项目的内存量,并为连接开销提供更大的缓冲区。减小 memcached_connections_overhead 参数的值将为您提供更多的内存来存储项目,但可能会增加使用交换分区和性能下降的风险。如果您发现交换分区使用情况和性能降低,请尝试增加 memcached_connections_overhead 参数的值。

重要

对于 cache.t1.micro 节点类型,memcached_connections_overhead 的值是通过以下方式决定:

  • 如果您的集群使用默认参数组,则 ElastiCache 会将的值设置memcached_connections_overhead为 13MB。

  • 如果您的集群使用的是您自己创建的参数组,那么您可以将 memcached_connections_overhead 的值设置为您选定的值。

特定于 Memcached 节点类型的参数

虽然大多数参数具有单个值,但是某些参数根据使用的节点类型具有不同的值。下表显示了每种节点类型的 max_cache_memorynum_threads 参数的默认值。无法修改这些参数的值。

节点类型 max_cache_memory(单位:MB) num_threads
cache.t1.micro 213 1
cache.t2.micro 555 1
cache.t2.small 1588 1
cache.t2.medium 3301 2
cache.t3.micro 512 2
cache.t3.small 1402 2
cache.t3.medium 3364 2
cache.t4g.micro 512 2
cache.t4g.small 1402 2
cache.t4g.medium 3164 2
cache.m1.small 1301 1
cache.m1.medium 3350 1
cache.m1.large 7100 2
cache.m1.xlarge 14600 4
cache.m2.xlarge 33800 2
cache.m2.2xlarge 30412 4
cache.m2.4xlarge 68000 16
cache.m3.medium 2850 1
cache.m3.large 6200 2
cache.m3.xlarge 13600 4
cache.m3.2xlarge 28600 8
cache.m4.large 6573 2
cache.m4.xlarge 11496 4
cache.m4.2xlarge 30412 8
cache.m4.4xlarge 62234 16
cache.m4.10xlarge 158355 40
cache.m5.large 6537 2
cache.m5.xlarge 13248 4
cache.m5.2xlarge 26671 8
cache.m5.4xlarge 53516 16
cache.m5.12xlarge 160900 48
cache.m5.24xlarge 321865 96
cache.m6g.large 6537 2
cache.m6g.xlarge 13248 4
cache.m6g.2xlarge 26671 8
cache.m6g.4xlarge 53516 16
cache.m6g.8xlarge 107000 32
cache.m6g.12xlarge 160900 48
cache.m6g.16xlarge 214577 64
cache.c1.xlarge 6600 8
cache.r3.large 13800 2
cache.r3.xlarge 29100 4
cache.r3.2xlarge 59600 8
cache.r3.4xlarge 120600 16
cache.r3.8xlarge 120600 32
cache.r4.large 12590 2
cache.r4.xlarge 25652 4
cache.r4.2xlarge 51686 8
cache.r4.4xlarge 103815 16
cache.r4.8xlarge 208144 32
cache.r4.16xlarge 416776 64
cache.r5.large 13387 2
cache.r5.xlarge 26953 4
cache.r5.2xlarge 54084 8
cache.r5.4xlarge 108347 16
cache.r5.12xlarge 325400 48
cache.r5.24xlarge 650869 96
cache.r6g.large 13387 2
cache.r6g.xlarge 26953 4
cache.r6g.2xlarge 54084 8
cache.r6g.4xlarge 108347 16
cache.r6g.8xlarge 214577 32
cache.r6g.12xlarge 325400 48
cache.r6g.16xlarge 429154 64
cache.c7gn.large 3164 2
cache.c7gn.xlarge 6537 4
cache.c7gn.2xlarge 13248 8
cache.c7gn.4xlarge 26671 16
cache.c7gn.8xlarge 53516 32
cache.c7gn.12xlarge 325400 48
cache.c7gn.16xlarge 108347 64
注意

所有 T2 实例都是在亚马逊虚拟私有云 (AmazonVPC) 中创建的。