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

Redis 6.0可自定义参数

云数据库Redis版已在云盘社区标准版中发布了Redis 6.0版本的实例,您可以在下表中查看该版本中支持自定义的参数。云盘版实例的创建方式请参见步骤1:创建实例

参数 说明 标准版
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 RENAMESUNIONSTORE等命令是否基于lazyfree异步删除数据,可选值:
  • yes,默认值,表示开启。
  • no,表示不开启。
支持
lazyfree-lazy-user-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,默认值,表示开启。
不支持
rt_threshold_ms 代理服务器中的慢日志阈值,单位为毫秒(ms)。如果代理服务器处理一个请求的时间超过该阈值,则会生成一条慢日志。计时从代理服务器向数据节点发出请求开始,到代理服务器收到响应结束。 不支持
script_check_enable 检查Lua脚本涉及的key是否在相同slot,可选值:
  • 0,表示不检查。
  • 1,默认值,表示检查。
不支持
readonly_lua_route_ronode_enable 开启或关闭只读副本的Lua执行模式,可选值:
  • 0,默认值,表示关闭Lua执行模式,只读副本不支持Lua,Lua命令会由主节点处理。
  • 1,表示开启Lua执行模式,仅包含读操作的Lua会被转发到只读副本处理。
不支持
transfer_subscrible_to_psubscrible_enable 开启或关闭SUBSCRIBEPSUBSCRIBE功能,可选值:
  • 0,默认值,表示关闭该功能,二者不转换。
  • 1,表示开启该功能,Redis Proxy会将SUBSCRIBE转换成PSUBSCRIBE处理。在Lua中使用了PUB/SUB类命令,导致在订阅的channel无法收到通知时,可以开启该功能。
不支持

更多参数详情请参见redis.conf for Redis 6.0

Redis 5.0可自定义参数

参数 说明 标准版 集群版 读写分离版
#no_loose_audit-read-enabled 开启或关闭读请求审计。开启后审计日志中显示读请求。 不支持 支持 支持
#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,默认值,表示关闭。
支持 支持 支持
#no_loose_tls-min-version 指定实例支持的TLS最低版本,可选值:
  • TLSv1
  • TLSv1.1
  • TLSv1.2
默认值:TLSv1。
不支持 支持 不支持
read_request_only_ronode_whenrwsplit_enable 开启或关闭只读账号请求定向转发,可选值:
  • 1,表示开启定向转发,只读账号的请求将定向转发到只读副本,不会转发到主节点。
  • 0,默认值,表示关闭定向转发,只读账号的请求将按照权重分配到各节点,包括主节点。
不支持 不支持 支持
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,默认值,表示开启。
不支持 支持 支持
max_session_processing 单个连接允许堆积的最大请求数。

代理节点转发客户端的请求给数据节点,但是未收到数据节点的回复,此时该请求即处于堆积状态。该参数主要用于限制代理节点前后端处理能力差异导致的请求堆积,避免内存上涨的问题。

不支持 支持 支持
rt_threshold_ms 代理服务器中的慢日志阈值,单位为毫秒(ms)。如果代理服务器处理一个请求的时间超过该阈值,则会生成一条慢日志。计时从代理服务器向数据节点发出请求开始,到代理服务器收到响应结束。 不支持 支持 支持
script_check_enable 检查Lua脚本涉及的key是否在相同slot,可选值:
  • 0,表示不检查。
  • 1,默认值,表示检查。
不支持 支持 支持
readonly_lua_route_ronode_enable 开启或关闭只读副本的Lua执行模式,可选值:
  • 0,默认值,表示关闭Lua执行模式,只读副本不支持Lua,Lua命令会由主节点处理。
  • 1,表示开启Lua执行模式,仅包含读操作的Lua会被转发到只读副本处理。
不支持 不支持 支持
transfer_subscrible_to_psubscrible_enable 开启或关闭SUBSCRIBEPSUBSCRIBE功能,可选值:
  • 0,默认值,表示关闭该功能,二者不转换。
  • 1,表示开启该功能,Redis Proxy会将SUBSCRIBE转换成PSUBSCRIBE处理。在Lua中使用了PUB/SUB类命令,导致在订阅的channel无法收到通知时,可以开启该功能。
不支持 支持 支持

更多参数详情请参见redis.conf for Redis 5.0

Redis 4.0可自定义参数

参数 说明 标准版 集群版 读写分离版
#no_loose_audit-read-enabled 开启或关闭读请求审计。开启后审计日志中显示读请求。 不支持 支持 支持
#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,默认值,表示关闭。
支持 支持 支持
#no_loose_tls-min-version 指定实例支持的TLS最低版本,可选值:
  • TLSv1
  • TLSv1.1
  • TLSv1.2
默认值:TLSv1。
不支持 支持 不支持
read_request_only_ronode_whenrwsplit_enable 开启或关闭只读账号请求定向转发,可选值:
  • 1,表示开启定向转发,只读账号的请求将定向转发到只读副本,不会转发到主节点。
  • 0,默认值,表示关闭定向转发,只读账号的请求将按照权重分配到各节点,包括主节点。
不支持 不支持 支持
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,默认值,表示开启。
不支持 支持 支持
max_session_processing 单个连接允许堆积的最大请求数。

代理节点转发客户端的请求给数据节点,但是未收到数据节点的回复,此时该请求即处于堆积状态。该参数主要用于限制代理节点前后端处理能力差异导致的请求堆积,避免内存上涨的问题。

不支持 支持 支持
rt_threshold_ms 代理服务器中的慢日志阈值,单位为毫秒(ms)。如果代理服务器处理一个请求的时间超过该阈值,则会生成一条慢日志。计时从代理服务器向数据节点发出请求开始,到代理服务器收到响应结束。 不支持 支持 支持
script_check_enable 检查Lua脚本涉及的key是否在相同slot,可选值:
  • 0,表示不检查。
  • 1,默认值,表示检查。
不支持 支持 支持
readonly_lua_route_ronode_enable 开启或关闭只读副本的Lua执行模式,可选值:
  • 0,默认值,表示关闭Lua执行模式,只读副本不支持Lua,Lua命令会由主节点处理。
  • 1,表示开启Lua执行模式,仅包含读操作的Lua会被转发到只读副本处理。
不支持 不支持 支持
transfer_subscrible_to_psubscrible_enable 开启或关闭SUBSCRIBEPSUBSCRIBE功能,可选值:
  • 0,默认值,表示关闭该功能,二者不转换。
  • 1,表示开启该功能,Redis Proxy会将SUBSCRIBE转换成PSUBSCRIBE处理。在Lua中使用了PUB/SUB类命令,导致在订阅的channel无法收到通知时,可以开启该功能。
不支持 支持 支持

更多参数详情请参见redis.conf for Redis 4.0

Redis 2.8可自定义参数

参数 说明 标准版 集群版 读写分离版
#no_loose_audit-read-enabled 开启或关闭读请求审计。开启后审计日志中显示读请求。 不支持 支持 支持
#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,默认值,表示关闭。
不支持 不支持 不支持
#no_loose_tls-min-version 指定实例支持的TLS最低版本,可选值:
  • TLSv1
  • TLSv1.1
  • TLSv1.2
默认值:TLSv1。
不支持 支持 不支持
read_request_only_ronode_whenrwsplit_enable 开启或关闭只读账号请求定向转发,可选值:
  • 1,表示开启定向转发,只读账号的请求将定向转发到只读副本,不会转发到主节点。
  • 0,默认值,表示关闭定向转发,只读账号的请求将按照权重分配到各节点,包括主节点。
不支持 不支持 支持
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,默认值,表示开启。
不支持 支持 支持
max_session_processing 单个连接允许堆积的最大请求数。

代理节点转发客户端的请求给数据节点,但是未收到数据节点的回复,此时该请求即处于堆积状态。该参数主要用于限制代理节点前后端处理能力差异导致的请求堆积,避免内存上涨的问题。

不支持 支持 支持
rt_threshold_ms 代理服务器中的慢日志阈值,单位为毫秒(ms)。如果代理服务器处理一个请求的时间超过该阈值,则会生成一条慢日志。计时从代理服务器向数据节点发出请求开始,到代理服务器收到响应结束。 不支持 支持 支持
script_check_enable 检查Lua脚本涉及的key是否在相同slot,可选值:
  • 0,表示不检查。
  • 1,默认值,表示检查。
不支持 支持 支持
readonly_lua_route_ronode_enable 开启或关闭只读副本的Lua执行模式,可选值:
  • 0,默认值,表示关闭Lua执行模式,只读副本不支持Lua,Lua命令会由主节点处理。
  • 1,表示开启Lua执行模式,仅包含读操作的Lua会被转发到只读副本处理。
不支持 不支持 支持
transfer_subscrible_to_psubscrible_enable 开启或关闭SUBSCRIBEPSUBSCRIBE功能,可选值:
  • 0,默认值,表示关闭该功能,二者不转换。
  • 1,表示开启该功能,Redis Proxy会将SUBSCRIBE转换成PSUBSCRIBE处理。在Lua中使用了PUB/SUB类命令,导致在订阅的channel无法收到通知时,可以开启该功能。
不支持 不支持 不支持

更多参数详情请参见redis.conf for Redis 2.8

设置参数

  1. 登录Redis管理控制台
  2. 在顶部菜单栏的左上角,选择实例所属的地域。
  3. 实例列表页,单击目标实例ID。
  4. 在左侧导航栏,单击参数设置
  5. 找到目标参数,单击其操作列的修改修改参数
  6. 在弹出的对话框中设置该参数的值。
    警告 部分参数在提交修改后会自动重启实例(重启过程中实例会发生秒级闪断,请谨慎操作),详情请参见目标参数的是否重启列。
  7. 单击确定

常见问题

  • Q:maxclients参数不支持修改吗?

    A:maxclients用于调整Redis数据节点的最大连接数,暂不支持修改,除企业版性能增强系列外,其它版本实例中该值的默认为10000。如需提高最大连接数,请升级实例配置,增加节点数量。

  • Q:什么是同城容灾实例?

    A:在创建实例时,如果选择的是同城容灾的可用区,例如华东1多可用区(G+H),则该实例为同城容灾实例,详情请参见同城容灾机制