更新时间:2024-07-29 GMT+08:00

创建自定义参数模板

您可以根据业务需要创建不同缓存版本和缓存类型的自定义参数模板,可以创建多个自定义参数模板。

操作步骤

  1. 登录分布式缓存服务管理控制台。
  2. 在管理控制台左上角单击,选择区域和项目。
  3. 单击左侧菜单栏的“参数模板”,进入“参数模板”页面。
  4. 选择“系统默认”或者“自定义”页签,可针对系统默认模板或已经创建好的自定义模板进行新的自定义模板创建。

    • 如果选择“系统默认”,则单击需要创建实例类型的系统默认模板右侧“操作”栏下的“创建为自定义模板”。
    • 如果选择“自定义”,则单击需要复制的自定义模板右侧“操作”栏下的“复制”。

  5. 设置“模板名称”和“描述”。

    模板名称长度为4到64位的字符串,以字母或者数字开头,模板名称只能包含字母、数字、中划线、下划线和点号。描述内容可以为空。

  6. 配置参数选择“可修改参数”。

    当前支持通过参数名称搜索对应的参数,直接在搜索栏输入关键字即可。

  7. 在需要修改的配置参数对应的“参数运行值”列输入修改值。

    各参数的详细介绍见表1,一般情况下,按照系统默认值设置参数即可。

    表1 Redis缓存实例配置参数说明

    参数名

    参数解释

    取值范围

    默认值

    active-expire-num

    过期键定期删除时随机检查key的数量。

    Redis 3.0实例不支持该参数。

    1~1,000

    20

    timeout

    客户端空闲N秒(timeout参数的取值)后将关闭连接。当N=0时,表示禁用该功能。

    Proxy集群实例不支持该参数。

    0~7200,单位:秒。

    0

    appendfsync

    操作系统的fsync函数刷新缓冲区数据到磁盘,有些操作系统会真正刷新磁盘上的数据,其他一些操作系统只会尝试尽快完成。

    Redis支持三种不同的调用 fsync的方式:

    no:不调用fsync,由操作系统决定何时刷新数据到磁盘,性能最高。

    always:每次写AOF文件都调用fsync,性能最差,但数据最安全。

    everysec:每秒调用一次fsync。兼具数据安全和性能。

    单机实例不支持该参数。

    • no
    • always
    • everysec

    no

    appendonly

    指定是否在每次更新操作后进行日志记录(即持久化功能),Redis在默认情况下是异步的把数据写入磁盘,如果不开启,可能会在断电时导致一段时间内的数据丢失。有2个取值供选择:

    yes:开启。

    no:关闭。

    单机实例不支持该参数。

    • yes
    • no

    yes

    client-output-buffer-limit-slave-soft-seconds

    slave客户端output-buffer超过client-output-buffer-slave-soft-limit设置的大小,并且持续时间超过此值(单位为秒),服务端会主动断开连接。

    单机实例不支持该参数。

    0~60

    60

    client-output-buffer-slave-hard-limit

    对slave客户端output-buffer的硬限制(单位为字节),如果slave客户端output-buffer大于此值,服务端会主动断开连接。

    单机实例不支持该参数。

    取值范围与实例的类型及规格有关

    默认值与实例的类型及规格有关

    client-output-buffer-slave-soft-limit

    对slave客户端output-buffer的软限制(单位为字节),如果output-buffer大于此值并且持续时间超过client-output-buffer-limit-slave-soft-seconds设置的时长,服务端会主动断开连接。

    单机实例不支持该参数。

    取值范围与实例的类型及规格有关

    默认值与实例的类型及规格有关

    maxmemory-policy

    在达到内存上限(maxmemory)时DCS将如何选择要删除的内容。有8个取值供选择:

    volatile-lru:根据LRU算法删除设置了过期时间的键值。

    allkeys-lru:根据LRU算法删除任一键值。

    volatile-random:删除设置了过期时间的随机键值。

    allkeys-random:删除一个随机键值。

    volatile-ttl:删除即将过期的键值,即TTL值最小的键值。

    noeviction:不删除任何键值,只是返回一个写错误。

    volatile-lfu: 根据LFU算法删除设置了过期时间的键值。

    allkeys-lfu: 根据LFU算法删除任一键值。

    取值范围与实例的版本有关

    默认值与实例的版本及类型有关

    lua-time-limit

    Lua脚本的最长执行时间,单位为毫秒。

    100~5,000

    5,000

    master-read-only

    设置实例为只读状态。设置只读后,所有写入命令将返回失败。

    Proxy集群实例不支持该参数。

    • yes
    • no

    no

    maxclients

    最大同时连接的客户端个数。

    Proxy集群实例不支持该参数。

    取值范围与实例的类型及规格有关

    默认值与实例的类型及规格有关

    proto-max-bulk-len

    Redis协议中的最大的请求大小,单位为字节。

    1,048,576~536,870,912

    536,870,912

    repl-backlog-size

    用于增量同步的复制积压缓冲区大小(单位为字节)。这是一个用来在从节点断开连接时,存放从节点数据的缓冲区,当从节点重新连接时,如果丢失的数据少于缓冲区的大小,可以用缓冲区中的数据开始增量同步。

    单机实例不支持该参数。

    16,384~1,073,741,824

    1,048,576

    repl-backlog-ttl

    从节点断开后,主节点释放复制积压缓冲区内存的秒数。值为0时表示永不释放复制积压缓冲区内存。

    单机实例不支持该参数。

    0~604,800

    3,600

    repl-timeout

    主从同步超时时间,单位为秒。

    单机实例不支持该参数。

    30~3,600

    60

    hash-max-ziplist-entries

    当hash表中只有少量记录时,使用有利于节约内存的数据结构来对hashes进行编码。

    1~10000

    512

    hash-max-ziplist-value

    当hash表中最大的取值不超过预设阈值时,使用有利于节约内存的数据结构来对hashes进行编码。

    1~10000

    64

    set-max-intset-entries

    当一个集合仅包含字符串且字符串为在64位有符号整数范围内的十进制整数时,使用有利于节约内存的数据结构对集合进行编码。

    1~10000

    512

    zset-max-ziplist-entries

    当有序集合中只有少量记录时,使用有利于节约内存的数据结构对有序序列进行编码。

    1~10000

    128

    zset-max-ziplist-value

    当有序集合中的最大取值不超过预设阈值时,使用有利于节约内存的数据结构对有序集合进行编码。

    1~10000

    64

    latency-monitor-threshold

    延时监控的采样时间阈值(最小值),单位为毫秒。

    阈值设置为0:不做监控,也不采样;

    阈值设置为大于0:将记录执行耗时大于阈值的操作。

    可以通过LATENCY等命令获取统计数据和配置、执行采样监控。

    Proxy集群实例不支持该参数。

    0~86400000,单位:毫秒。

    0

    notify-keyspace-events

    notify-keyspace-events选项的参数为空字符串时,功能关闭。另一方面,当参数不是空字符串时,功能开启。notify-keyspace-events的参数可以是以下字符的任意组合,它指定了服务器该发送哪些类型的通知:

    K:键空间通知,所有通知以__keyspace@__为前缀。

    E:键事件通知,所有通知以__keyevent@__为前缀。

    g:DEL、EXPIRE、RENAME等类型无关的通用命令的通知。

    $:字符串命令的通知。

    l:列表命令的通知。

    s:集合命令的通知。

    h:哈希命令的通知。

    z:有序集合命令的通知。

    x:过期事件:每当有过期键被删除时发送。

    e:驱逐(evict)事件:每当有键因为maxmemory政策而被删除时发送。

    A:参数g$lshzxe的别名。

    输入的参数中至少有一个K或者E,A不能与g$lshzxe同时出现,不能出现相同字母。举个例子,如果只想订阅键空间中和列表相关的通知,那么参数就应该设为Kl。将参数设为字符串"AKE"表示发送所有类型的通知。

    Proxy集群实例不支持该参数。

    请参考该参数的描述。

    Ex

    slowlog-log-slower-than

    Redis慢查询会记录超过指定执行时间的命令。

    slowlog-log-slower-than用于配置记录到慢查询的命令执行时间阈值,单位为微秒。

    0~1,000,000

    10,000

    slowlog-max-len

    慢查询记录的条数。注意慢查询记录会消耗额外的内存。可以通过执行SLOWLOG RESET命令清除慢查询记录。

    0~1,000

    128

    1. maxclients、reserved-memory-percent、client-output-buffer-slave-soft-limit、client-output-buffer-slave-hard-limit参数的默认值和取值范围与实例规格有关,因此不支持修改该四个参数。
    2. 表1中的内存优化相关参数可以参考Redis官网说明,链接:https://redis.io/topics/memory-optimization
    3. latency-monitor-threshold参数一般在定位问题时使用。采集完latency信息,定位问题后,建议重新将latency-monitor-threshold设置为0,以免引起不必要的延迟。
    4. notify-keyspace-events参数的其他描述:
      • 有效值为[K|E|KE][A|g|l|s|h|z|x|e|$],即输入的参数中至少要有一个K或者E。
      • A为“g$lshzxe”所有参数的集合别名。A与“g$lshzxe”中任意一个不能同时出现。
      • 例如,如果只想订阅键空间中和列表相关的通知,那么参数就应该设为Kl。若将参数设为字符串"AKE"表示发送所有类型的通知。

  8. 单击“确定”,完成创建自定义参数模板。