云数据库Redis版允许用户自定义部分实例参数。通过本文,您可以了解相关参数的说明以及在Redis控制台修改各参数值的通用方法。

背景信息

云数据库Redis版服务与原生的数据库服务完全兼容,设置云数据库参数方法和本地数据库参数设置方法基本类似。参照本例,您可以通过Redis管理控制台修改参数。

参数说明

可自定义的实例参数如表 1所示。

表 1. 参数说明
参数 说明 Redis 2.8 Redis 4.0 Redis 5.0
主从 集群 读写分离 多可用区主从 主从 集群 读写分离 多可用区主从 主从 集群 读写分离 多可用区主从
#no_loose_check-whitelist-always 开启VPC免密访问后默认不检查客户端IP是否在Redis白名单中,此时如果将该参数的值设置为yes,则白名单在VPC免密模式下依然生效。可选值:
  • yes,表示开启。
  • no,默认值,表示关闭。
不支持 不支持 不支持 不支持 支持 支持 支持 支持 支持 支持 支持 支持
#no_loose_disabled-commands

设置禁用命令,多个命令通过逗号隔开,目前可禁用的命令有:FLUSHALLFLUSHDBKEYSHGETALLEVALEVALSHASCRIPT

支持 支持 支持 支持 支持 支持 支持 支持 支持 支持 支持 支持
#no_loose_ssl-enabled 开启或关闭SSL加密连接,可选值:
  • yes,表示开启。
  • no,默认值,表示关闭。
不支持 支持 支持 不支持 不支持 支持 支持 不支持 不支持 支持 支持 不支持
#no_loose_sentinel-enabled 开启或关闭哨兵(Sentinel)兼容模式,可选值:
  • yes,表示开启。
  • no,默认值,表示关闭。
不支持 不支持 不支持 不支持 支持 支持 支持 支持 支持 支持 支持 支持
appendonly 开启或关闭AOF持久化,可选值:
  • yes,默认值,表示开启AOF持久化。
  • no,表示关闭AOF持久化。
说明 将该参数的值设置为no将关闭master的AOF持久化,不影响replica。
不支持 不支持 不支持 不支持 支持 支持 支持 支持 不支持 不支持 不支持 不支持
client-output-buffer-limit pubsub 限制对发布订阅客户端的输出缓冲,参数值格式为<hard limit> <soft limit> <soft seconds>
  • hard limit:当某客户端的输出缓冲区占用内存达到或超过hard limit的限制时,断开该客户端的连接。hard limit值的单位为Byte。
  • soft limit和soft seconds:当某客户端的输出缓冲区占用内存达到或超过soft limit的限制,且该状态持续时间大于等于soft seconds限定的秒数,断开该客户端的连接。soft limit值的单位为Byte,soft seconds值的单位为s。
支持 支持 支持 支持 支持 支持 支持 支持 支持 支持 支持 支持
dynamic-hz 开启或关闭动态hz,可选值:
  • yes,默认值,表示开启。
  • no,表示关闭。
不支持 不支持 不支持 不支持 不支持 不支持 不支持 不支持 支持 不支持 不支持 支持
hash-max-ziplist-entries

哈希对象同时满足以下两个条件时, 使用ziplist编码。

  1. 哈希对象保存的所有键值对的键和值的字符串长度的字节数都小于hash-max-ziplist-value的值。
  2. 哈希对象保存的键值对数量小于hash-max-ziplist-entries的值。
支持 支持 支持 支持 支持 支持 支持 支持 支持 支持 支持 支持
hash-max-ziplist-value

哈希对象同时满足以下两个条件时, 使用ziplist编码。

  1. 哈希对象保存的所有键值对的键和值的字符串长度的字节数都小于hash-max-ziplist-value的值。
  2. 哈希对象保存的键值对数量小于hash-max-ziplist-entries的值。
支持 支持 支持 支持 支持 支持 支持 支持 支持 支持 支持 支持
hz 设置Redis后台任务执行频率,比如清除过期键任务。取值范围为1~500,默认值为10,即每秒执行10次。该值越大,CPU资源消耗越多,但在过期键较多的情况下清理频率也更高,同时Redis能够更精确地处理超时。建议取值不要超过100。 支持 支持 支持 支持 支持 支持 支持 支持 支持 支持 支持 支持
lazyfree-lazy-eviction 是否开启基于lazyfree的驱逐功能,可选值:
  • yes,表示开启。
  • no,默认值,表示不开启。
不支持 不支持 不支持 不支持 支持 支持 支持 支持 支持 支持 支持 支持
lazyfree-lazy-expire 是否开启基于lazyfree的过期key删除功能,可选值:
  • yes,默认值,表示开启。
  • no,表示不开启。
不支持 不支持 不支持 不支持 支持 支持 支持 支持 支持 支持 支持 支持
lazyfree-lazy-server-del DEL命令是否基于lazyfree异步删除数据,可选值:
  • yes,默认值,表示开启。
  • no,表示不开启。
不支持 不支持 不支持 不支持 支持 支持 支持 支持 支持 支持 支持 支持
list-compress-depth

列表中两端不被压缩的节点个数,取值范围0~65535。

  • 0:默认值,表示都不压缩。
  • 1:表示list两端各有1个节点不压缩,中间的节点压缩。
  • 2:表示list两端各有2个节点不压缩,中间的节点压缩。
  • 3:表示list两端各有3个节点不压缩,中间的节点压缩。
  • 其后依此类推。
不支持 不支持 不支持 不支持 支持 支持 支持 支持 支持 支持 支持 支持
list-max-ziplist-size
  • 取正值表示按照数据项个数来限定每个quicklist节点上的ziplist长度。例如,当该参数配置为5时,每个quicklist节点的ziplist最多包含5个数据项。
  • 取负值表示按照占用字节数来限定每个quicklist节点上的ziplist长度。此时,该值只能取-1到-5这五个值,每个值含义如下。
    • -5:每个quicklist节点上的ziplist大小不能超过64Kb(注:1kb = 1024 bytes)。
    • -4:每个quicklist节点上的ziplist大小不能超过32Kb。
    • -3:每个quicklist节点上的ziplist大小不能超过16Kb。
    • -2:每个quicklist节点上的ziplist大小不能超过8Kb(Redis默认值)。
    • -1:每个quicklist节点上的ziplist大小不能超过4 Kb。
不支持 不支持 不支持 不支持 支持 支持 支持 支持 支持 支持 支持 支持
maxmemory-policy

设置缓存满后Redis删除内容的策略,您可以在如下八种策略中进行选择。LRU表示最近最少使用的。LFU表示最不常用的。LRU,LFU和volatile-ttl都是使用近似随机算法实现的。

  • volatile-lru:只从设置失效(expire set)的key中选择最近最少使用的key进行删除。
  • allkeys-lru:优先删除掉最近最少使用的key。
  • volatile-lfu:只从设置失效(expire set)的key中选择最不常用的key进行删除。
  • allkeys-lfu:优先删除掉最不常用的key。
  • volatile-random:只从设置失效(expire set)的key中,随机选择一些key进行删除。
  • allkeys-random:随机选择一些key进行删除。
  • volatile-ttl:只从设置失效(expire set)的key中,选出存活时间(TTL)最短的key进行删除。
  • noeviction:不删除任何key,只是在写操作时返回错误。
支持 支持 支持 支持 支持 支持 支持 支持 支持 支持 支持 支持
notify-keyspace-events

notify-keyspace-events的参数可以是以下字符的任意组合,它指定了服务器该发送哪些类型的通知。

  • 字符:发送的通知。
  • K:键空间通知,所有通知以__keyspace@<db>__为前缀。
  • E:键事件通知,所有通知以__keyevent@<db>__为前缀。
  • g:DEL、EXPIRE、RENAME等类型无关的通用命令的通知。
  • l:列表命令的通知。
  • s:集合命令的通知。
  • h:哈希命令的通知。
  • z:有序集合命令的通知。
  • x:过期事件。每当有过期键被删除时发送。
  • e:驱逐(evict)事件。每当有键因为maxmemory政策而被删除时发送。
  • A:参数g$lshzxe的别名。
支持 不支持 不支持 支持 支持 不支持 不支持 支持 支持 不支持 不支持 支持
set-max-intset-entries

当Set集合内的数据符合以下条件时,会使用intset编码。

  1. 当集合内所有数据都是字符对象。
  2. 都是基数为10的整数,范围为64位有符号整数。
支持 支持 支持 支持 支持 支持 支持 支持 支持 支持 支持 支持
slowlog-log-slower-than 设置是否记录慢查询日志:
  • 当取值为负时,不记录任何操作。
  • 当取值为0时,记录所有操作。
  • 当取值为正时,只有当操作执行时间大于设置值,操作才被记录。

单位为微秒(ms),取值范围0~10000000,默认值10000。

支持 支持 支持 支持 支持 支持 支持 支持 支持 支持 支持 支持
slowlog-max-len 慢日志最多保存记录条数,取值范围100~10000,默认值1024。 支持 支持 支持 支持 支持 支持 支持 支持 支持 支持 支持 支持
stream-node-max-bytes Stream中每个宏节点(Macro Node)能够占用的最大内存,取值范围:0~999,999,999,999,999。0表示无限制。 不支持 不支持 不支持 不支持 不支持 不支持 不支持 不支持 支持 不支持 不支持 支持
stream-node-max-entries Stream中每个宏节点中可存储条目的最大数量,取值范围:0~999,999,999,999,999。0表示无限制。 不支持 不支持 不支持 不支持 不支持 不支持 不支持 不支持 支持 不支持 不支持 支持
timeout 在客户端连接空闲时长达到指定值时关闭连接。单位为秒(s),取值范围:0-100000。0表示不开启。 不支持 不支持 不支持 不支持 支持 不支持 不支持 支持 支持 不支持 不支持 支持
zset-max-ziplist-entries

排序集合对象同时满足以下两个条件时, 使用ziplist编码。

  1. 排序集合对象保存的所有键值对的键和值的字符串长度的字节数都小于zset-max-ziplist-value的值。
  2. 排序集合对象保存的键值对数量小于zset-max-ziplist-entries的值。
支持 支持 支持 支持 支持 支持 支持 支持 支持 支持 支持 支持
zset-max-ziplist-value

排序集合对象同时满足以下两个条件时, 使用ziplist编码。

  1. 排序集合对象保存的所有键值对的键和值的字符串长度的字节数都小于zset-max-ziplist-value的值。
  2. 排序集合对象保存的键值对数量小于zset-max-ziplist-entries的值。
支持 支持 支持 支持 支持 支持 支持 支持 支持 支持 支持 支持
list-max-ziplist-entries

链表对象同时满足以下两个条件时, 使用ziplist编码。

  1. 链表对象保存的所有元素的字符串长度的字节数都小于list-max-ziplist-value的值。
  2. 链表集合对象保存的元素数量小于list-max-ziplist-entries的值。
支持 支持 支持 支持 不支持 不支持 不支持 不支持 不支持 不支持 不支持 不支持
list-max-ziplist-value

链表对象同时满足以下两个条件时, 使用ziplist编码。

  1. 链表对象保存的所有元素的字符串长度的字节数都小于list-max-ziplist-value的值。
  2. 链表集合对象保存的元素数量小于list-max-ziplist-entries的值。
支持 支持 支持 支持 不支持 不支持 不支持 不支持 不支持 不支持 不支持 不支持
cluster_compat_enable 开启或关闭原生Redis cluster语法兼容,可选值:
  • 0,表示关闭。
  • 1,默认值,表示开启。
不支持 支持 支持 不支持 不支持 支持 支持 不支持 不支持 支持 支持 不支持
script_check_enable 检查Lua脚本涉及的key是否在相同slot,可选值:
  • 0,表示不检查。
  • 1,默认值,表示检查。
不支持 支持 支持 不支持 不支持 支持 支持 不支持 不支持 支持 支持 不支持
说明 用于调整Redis数据节点最大连接数的maxclients参数不支持自定义,默认值为10000。

更多信息请参见各版本的官方文档:

在Redis管理控制台设置参数

  1. 登录Redis管理控制台
  2. 在界面左上方的菜单栏中选择实例所在的地域 。
  3. 单击目标实例的实例ID或者操作列的管理
  4. 实例信息页的左侧导航栏中,单击参数设置参数说明及设置方法_参数设置_用户指南_云数据库 Redis 版 阿里云技术文档 第1张
  5. 单击目标参数操作列的修改参数说明及设置方法_参数设置_用户指南_云数据库 Redis 版 阿里云技术文档 第2张
  6. 在弹出的对话框中修改参数的值,之后单击确定

使用API设置参数

除了在控制台修改参数的值,您还可以调用ModifyInstanceConfig接口来设置参数。

相关API

API 说明
DescribeParameters 调用DescribeParameters查询Redis实例的配置参数和运行参数。
ModifyInstanceConfig 调用ModifyInstanceConfig修改Redis实例的配置参数。