Redis OSS 特有的参数 - 亚马逊 ElastiCache (RedisOSS)

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

Redis OSS 特有的参数

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

Redis OSS 7 参数变更

参数组系列:redis7

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

  • default.redis7— 对于 Redis OSS(已禁用集群模式)集群和复制组,使用此参数组或从中派生的参数组。

  • default.redis7.cluster.on— 对于 Redis OSS(已启用集群模式)集群和复制组,使用此参数组或从中派生的参数组。

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

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

允许的值:yesno

默认:yes

类型:字符串

可修改:是

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

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

cluster-preferred-endpoint-type

允许的值:iptls-dynamic

默认:tls-dynamic

类型:字符串

可修改:是

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

此值控制 MOVED/ASKING 请求返回的端点以及 CLUSTER SLOTSCLUSTER 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— 对于 Redis OSS(已禁用集群模式)集群和复制组,使用此参数组或从中派生的参数组。

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

注意

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

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

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

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

允许的值:resetchannelsallchannels

默认:allchannels

类型:字符串

可修改:是

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

部署到此集群的 ACL 用户将默认拥有发布订阅频道权限。

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

默认值:no

类型:字符串

可修改:是

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

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

当设置为默认值“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 通过两种机制删除已超过其存活时间的密钥。一种机制是,访问密钥并发现其已过期。另一种机制是,周期性任务对密钥进行采样,并使那些超过其存活时间的密钥过期。此参数定义 Redis OSS 为使定期任务中的项目过期所花费的工作量。

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

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— 对于 Redis OSS(已禁用集群模式)集群和复制组,使用此参数组或从中派生的参数组。

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

Redis OSS 5.0.3 中添加的参数
名称 详细信息 描述
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 (Redis OSS) 版本 5.0.6(增强版)

Redis OSS 5.0.0 参数发生了变化

参数组系列:redis5.0

Redis OSS 5.0 默认参数组

  • default.redis5.0— 对于 Redis OSS(已禁用集群模式)集群和复制组,使用此参数组或从中派生的参数组。

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

Redis OSS 5.0 中添加的参数
名称 详细信息 描述
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— 对于 Redis OSS(已禁用集群模式)集群和复制组,使用此参数组或从中派生的参数组。

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

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 OSS 4.0.10 中添加的参数
名称 详细信息 描述
异步删除参数
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 (Redis OSS) 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 时,如果您想创建 Redis OSS(已禁用集群模式)复制组但仍使用 Redis OSS 3.2.4 的其他功能,请指定此参数组或从该参数组派生的参数组。

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

Redis OSS 3.2.4 的新参数

参数组系列: 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

默认值:否/是 *

类型:字符串

可修改:否

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

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

  • default.redis3.2 – 默认值 no

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

.

cluster-require-full-coverage

默认值:no

类型:布尔值

可修改:是

更改生效:立即

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

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

hll-sparse-max-bytes

默认值:3000

类型:整数

可修改:是

更改生效:立即

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

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

我们建议使用 3000 左右的值来获得空间效率较高的编码,同时不会过多地降低 PFADD 效率,即稀疏编码的复杂度为 O(N)。如果不考虑CPU,而是空间,并且数据集由许多 HyperLogLogs 基数介于 0-15000 范围内的数据集组成,则可以将该值提高到大约 10000。

reserved-memory-percent

默认值:25

类型:整数

可修改:是

更改生效:立即

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

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

有关更多信息,请参阅 reserved-memory管理预留内存

在 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 – 通用的非特定命令,如 DELEXPIRERENAME 等。

  • $ – 字符串命令

  • 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 的仅附加文件功能(AOF)。AOF 会捕获任何更改缓存中数据的 Redis OSS 命令,并用于从某些节点故障中恢复。

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

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

注意

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

注意

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

appendfsync

默认值:everysec

类型:字符串

可修改:是

更改生效:立即

appendonly 设置为是时,控制将 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 将首先发出 SCR IPT KILL 命令。如果不成功, 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

有关更多信息,请参阅使用 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 OSS 发行版 ElastiCache,不属于标准 Redis OSS 发行版的一部分。

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

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 配置变量appendonlyappendfsyncRedis OSS 版本 2.8.22 及更高版本不支持。