Redis 特定的参数 - Amazon MemoryDB for Redis
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

Redis 特定的参数

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

Redis 6 参数

参数组系列:memorydb_redis6

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

名称 详细信息 说明
maxmemory-policy

类型: STRING

允许的值:volatile-lru、allkeys-lru、volatile-lfu、allkeys-lfu、挥发性随机、ALLKEYS-随机、volatile-ttl、noeviction

默认值:noeviction

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

有关更多信息,请参阅将 Redis 用作 LRU 缓存。将 Redis 用作 LRU 缓存.

list-compress-depth

类型: INTEGER

允许的值:—0

默认值:0

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

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

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

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

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

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

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

  • 等等

hll-sparse-max-bytes

类型: INTEGER

允许的值:1-16000

默认值:3000

HyperLog日志稀疏表示形式字节限制。限制包括 16 个字节的标头。当HyperLog使用稀疏表示形式的日志超出此限制,它会转换成密集表现形式。

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

我们建议使用 3000 左右的值来获得空间效率较高的编码,同时不会降低效率。PFADD太多了,这是 O (N) 使用稀疏编码。如果不存在 CPU 问题,但空间较为严重,且数据集由许多组成,则可将该值提高到 10000 左右。HyperLog基数在 0-15000 范围内的日志。

lfu-log-factor

类型: INTEGER

允许的值:–1

默认值:10

用于增加 LFU 驱逐策略的密钥计数器的日志因子。

lfu-decay-time

类型: INTEGER

允许的值:—0

默认值:1

减少 LFU 驱逐策略的键计数器的时间,以分钟为单位。

active-defrag-max-scan-fields

类型: INTEGER

允许的值:1-1000000

默认值:1000

在活动碎片整理过程中,将从主字典扫描中处理的最大 sethash/zset/list 字段数。

active-defrag-threshold-upper

类型: INTEGER

允许的值:1-100

默认值:100

我们使用最大精力的碎片最高百分比。

client-output-buffer-limit-pubsub-hard-limit

类型: INTEGER

允许的值:—0

默认值:33554432

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

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

类型: INTEGER

允许的值:—0

默认值:8388608

对于 Redis 发布/订阅客户端:如果客户端的输出缓冲区达到指定字节数,则客户端将断开连接,但是仅当此条件保持时间时。client-output-buffer-limit-pubsub-soft-seconds.

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

类型: INTEGER

允许的值:—0

默认值:60

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

timeout

类型: INTEGER

允许的值:0,20-

默认值:0

节点在超时之前等待的秒数。值为:

  • 0 — 从不断开空闲客户端。

  • 1-19 — 无效值。

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

notify-keyspace-events

类型: STRING

允许的值:NULL

默认值:NULL

Redis 用于通知 Pub/Sub 客户关于的密钥空间事件。默认情况下,禁用所有通知。

maxmemory-samples

类型: INTEGER

允许的值:–1

默认值:3

适用于least-recently-used (LRU)time-to-live (TTL)计算,此参数表示要检查的密钥的采样大小。默认情况下,Redis 选择 3 个密钥并使用最近最少使用的一个密钥。

slowlog-max-len

类型: INTEGER

允许的值:—0

默认值:128

Redis 慢速日志的最大长度。这个长度没有限制。请注意,它会消耗内存。你可以使用回收慢日志使用的内存SLOWLOG RESET.

activerehashing

类型: STRING

允许的值:Yes、no

默认值:yes

主哈希表每秒重新哈希十次;每个重新哈希操作消耗 1 毫秒的 CPU 时间。

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

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

类型: INTEGER

允许的值:—0

默认值:0

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

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

类型: INTEGER

允许的值:—0

默认值:0

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

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

类型: INTEGER

允许的值:—0

默认值:0

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

tcp-keepalive

类型: INTEGER

允许的值:—0

默认值:300

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

active-defrag-cycle-min

类型: INTEGER

允许的值:1-75

默认值:5

用于碎片整理的最少精力,以 CPU 百分比为单位。

stream-node-max-bytes

类型: INTEGER

允许的值:—0

默认值:4096

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

stream-node-max-entries

类型: INTEGER

允许的值:—0

默认值:100

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

lazyfree-lazy-eviction

类型: STRING

允许的值:Yes、no

默认值:no

对移出执行异步删除。

active-defrag-ignore-bytes

类型: INTEGER

允许的值:1048576-

默认值:104857600

启动有效碎片整理的碎片垃圾最低量。

lazyfree-lazy-expire

类型: STRING

允许的值:Yes、no

默认值:no

对已过期密钥执行异步删除。

active-defrag-threshold-lower

类型: INTEGER

允许的值:1-100

默认值:10

启动有效碎片整理的碎片最低百分比。

active-defrag-cycle-max

类型: INTEGER

允许的值:1-75

默认值:75

用于碎片整理的最多精力,以 CPU 百分比为单位。

lazyfree-lazy-server-del

类型: STRING

允许的值:Yes、no

默认值:no

对更新值的命令执行异步删除。

slowlog-log-slower-than

类型: INTEGER

允许的值:—0

默认值:10000

Redis 记录命令的最大执行时间(单位:微秒)。Slow Log功能。请注意,负数禁用慢日志,而值为零则强制记录每个命令。

hash-max-ziplist-entries

类型: INTEGER

允许的值:—0

默认值:512

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

hash-max-ziplist-value

类型: INTEGER

允许的值:—0

默认值:64

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

set-max-intset-entries

类型: INTEGER

允许的值:—0

默认值:512

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

zset-max-ziplist-entries

类型: INTEGER

允许的值:—0

默认值:128

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

zset-max-ziplist-value

类型: INTEGER

允许的值:—0

默认值:64

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

tracking-table-max-keys

类型: INTEGER

允许的值:1-100000000

默认值:1000000

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

当所跟踪的密钥被修改后,会向所有客户端发送失效消息,通知它们缓存的值不再有效。此值允许您指定此表的上限。

acllog-max-len

类型: INTEGER

允许的值:1-10000

默认值:128

ACL 日志中的最大条目数。

active-expire-effort

类型: INTEGER

允许的值:1-10

默认值:1

Redis 会通过两种机制删除超过密钥自身存活时间的密钥。一种机制是,访问密钥并发现其已过期。另一种机制是,周期性任务对密钥进行采样,并使那些超过其存活时间的密钥过期。此参数定义 Redis 用于在周期性任务中使项目过期的工作量。

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

lazyfree-lazy-user-del

类型: STRING

允许的值:Yes、no

默认值:no

指定的默认行为DEL命令的行为与UNLINK.

activedefrag

类型: STRING

允许的值:Yes、no

默认值:no

已启用活动内存碎片整理。

特定于 MemeryDB 节点类型的参数

虽然大多数参数具有单个值,但是某些参数根据使用的节点类型具有不同的值。下表显示了maxmemory对于每种节点类型。maxmemory 的值是节点上可供您使用(数据和其他用途)的最大字节数。

节点类型 Maxmemory
db.r6g.large 14037181030
db.r6g.xlarge 28261849702
db.r6g.2xlarge 56711183565
db.r6g.4xlarge 113609865216
db.r6g.8xlarge 225000375228
db.r6g.12xlarge 341206346547
db.r6g.16xlarge 450000750456
db.t4g.small 1471026299
db.t4g.medium 3317862236
注意

AutoryDB 所有实例类型必须在 Amazon Virtual Private Cloud VPC 中创建。