您可以根据业务场景对云数据库 Tair(兼容 Redis)实例的参数进行调优与自定义配置,已提升实例的性能与安全性。不同的引擎版本和架构支持的参数有所区别,本文为您介绍各参数的详细说明。
注意事项
若设置参数时报错
Parameter is not supported for current version
,请升级小版本后重试,具体操作请参见升级小版本与代理版本。部分参数在提交修改后会自动重启实例(重启过程中实例会发生秒级闪断)。在设置参数时,您需要关注目标参数的重启生效列,更多信息,请参见设置参数。
本文仅包含Redis开源版实例的参数,关于Tair(企业版)实例的参数(包含内存型、持久内存型和磁盘型)请参见Tair企业版配置参数列表。
支持的参数及说明
为便于阅读和内容表达,本文的表格约定使用下述注释:
✔️表示在该大版本或架构下,支持该参数。
❌表示在该大版本或架构下,不支持该参数。
参数 | 说明 | 实例的大版本与架构 | ||||
7.0版本 | 6.0版本 | 5.0版本 | 4.0版本 | 2.8版本 | ||
#no_loose_check-whitelist-always | 开启专有网络免密后,是否检查客户端的IP在实例白名单中。可选值:
说明 仅经典版实例支持设置该参数。 | ❌ | ❌ | 标准️️✔️ 集群✔️ 读写分离✔️ | 标准️️✔️ 集群✔️ 读写分离✔️ | ❌ |
#no_loose_disabled-commands | 设置禁用命令,可根据业务需求禁用某些高危命令或高时间复杂度的命令,例如FLUSHALL、FLUSHDB、KEYS、HGETALL、EVAL、EVALSHA、SCRIPT等。 说明
| 标准️️✔️ 集群✔️ 读写分离✔️ | 标准️️✔️ 集群✔️ 读写分离✔️ | 标准️️✔️ 集群✔️ 读写分离✔️ | 标准️️✔️ 集群✔️ 读写分离✔️ | 标准️️✔️ 集群✔️ 读写分离✔️ |
sentinel_compat_enable | 在集群架构代理模式或读写分离架构,开启或关闭哨兵(Sentinel)兼容模式,可选值:
| 标准️️❌ 集群✔️ 读写分离✔️ | 标准️️❌ 集群✔️ 读写分离✔️ | 标准️️❌ 集群✔️ 读写分离✔️ | 标准️️❌ 集群✔️ 读写分离✔️ | ❌ |
#no_loose_sentinel-enabled | 在标准架构或集群架构直连模式,开启或关闭哨兵(Sentinel)兼容模式,可选值:
| 标准️️✔️ 集群✔️ 读写分离❌ | 标准️️✔️ 集群✔️ 读写分离❌ | 标准️️✔️ 集群✔️ 读写分离❌ | 标准️️✔️ 集群✔️ 读写分离❌ | ❌ |
#no_loose_sentinel-password-free-access | 开启哨兵模式时,是否允许免密执行Sentinel相关命令,可选值:
| 标准️️✔️ 集群✔️ 读写分离✔️ | 标准️️✔️ 集群✔️ 读写分离✔️ | ❌ | ❌ | ❌ |
#no_loose_sentinel-password-free-commands | 在开启哨兵模式以及#no_loose_sentinel-password-free-access参数后,您还可以通过本参数添加额外的免密命令列表(默认为空)。 重要
| 标准️️✔️ 集群✔️ 读写分离✔️ | 标准️️✔️ 集群✔️ 读写分离✔️ | ❌ | ❌ | ❌ |
#no_loose_statistics-cmds | 本组参数为实例可观测性能力的一部分,设置后还需要配合审计日志才会生效,统计周期为5秒/次。
说明
| ❌ | ❌ | 标准️️❌ 集群✔️ 读写分离✔️ | 标准️️❌ 集群✔️ 读写分离✔️ | 标准️️❌ 集群✔️ 读写分离✔️ |
#no_loose_statistics-ip-enable | ❌ | ❌ | 标准️️❌ 集群✔️ 读写分离✔️ | 标准️️❌ 集群✔️ 读写分离✔️ | 标准️️❌ 集群✔️ 读写分离✔️ | |
#no_loose_statistics-keys | ❌ | ❌ | 标准️️❌ 集群✔️ 读写分离✔️ | 标准️️❌ 集群✔️ 读写分离✔️ | 标准️️❌ 集群✔️ 读写分离✔️ | |
#no_loose_tls-min-version | 设置实例支持的TLS最低版本,可选值:
| 标准️️❌ 集群✔️ 读写分离✔️ | 标准️️❌ 集群✔️ 读写分离✔️ | 标准️️❌ 集群✔️ 读写分离✔️ | 标准️️❌ 集群✔️ 读写分离✔️ | 标准️️❌ 集群✔️ 读写分离✔️ |
cluster_compat_enable | 在集群架构代理模式或读写分离架构,开启或关闭原生Redis cluster语法兼容,可选值:
| 标准️️❌ 集群✔️ 读写分离✔️ | 标准️️❌ 集群✔️ 读写分离✔️ | 标准️️❌ 集群✔️ 读写分离✔️ | 标准️️❌ 集群✔️ 读写分离✔️ | 标准️️❌ 集群✔️ 读写分离✔️ |
max_session_processing | 单个连接允许堆积的最大请求数。代理节点转发客户端的请求给数据节点,但是未收到数据节点的回复,此时该请求即处于堆积状态。该参数主要用于限制代理节点前后端处理能力差异导致的请求堆积,避免内存上涨的问题。 | 标准️️❌ 集群✔️ 读写分离✔️ | 标准️️❌ 集群✔️ 读写分离✔️ | 标准️️❌ 集群✔️ 读写分离✔️ | 标准️️❌ 集群✔️ 读写分离✔️ | 标准️️❌ 集群✔️ 读写分离✔️ |
ptod_enabled | 是否将客户端的IP地址通过代理节点透传到数据节点,可选值:
说明 标准架构或集群架构直连模式均不涉及该参数。 | 标准❌ 集群✔️ 读写分离✔️ | 标准❌ 集群✔️ 读写分离✔️ | 标准️️❌ 集群✔️ 读写分离✔️ | 标准️️❌ 集群✔️ 读写分离✔️ | ❌ |
readonly_lua_route_ronode_enable | 开启或关闭只读副本的Lua执行模式,可选值:
| 标准️️❌ 集群❌️ 读写分离✔️ | 标准️️❌ 集群❌️ 读写分离✔️ | 标准️️❌ 集群❌️ 读写分离✔️ | 标准️️❌ 集群❌️ 读写分离✔️ | ❌ |
read_request_only_ronode_whenrwsplit_enable | 开启或关闭只读账号请求定向转发,可选值:
| 标准️️❌ 集群❌️ 读写分离✔️ | 标准️️❌ 集群❌️ 读写分离✔️ | 标准️️❌ 集群❌️ 读写分离✔️ | 标准️️❌ 集群❌️ 读写分离✔️ | 标准️️❌ 集群❌️ 读写分离✔️ |
rt_threshold_ms | 代理服务器中的慢日志阈值,单位为毫秒(ms)。如果代理服务器处理一个请求的时间超过该阈值,则会生成一条慢日志。 说明 计时方式:从代理服务器向数据节点发出请求开始,到代理服务器收到响应结束。 | 标准️️❌ 集群✔️️️️️ 读写分离✔️ | 标准️️❌ 集群✔️️️️️ 读写分离✔️ | 标准️️❌ 集群✔️️️️️ 读写分离✔️ | 标准️️❌ 集群✔️️️️️ 读写分离✔️ | 标准️️❌ 集群✔️️️️️ 读写分离✔️ |
script_check_enable | 在集群架构代理模式或读写分离架构,Proxy对Lua脚本的检测项,具体检查项请参见Proxy对Lua的检测项,可选值:
| 标准️️❌ 集群✔️️️️️ 读写分离✔️ | 标准️️❌ 集群✔️️️️️ 读写分离✔️ | 标准️️❌ 集群✔️️️️️ 读写分离✔️ | 标准️️❌ 集群✔️️️️️ 读写分离✔️ | 标准️️❌ 集群✔️️️️️ 读写分离✔️ |
transfer_subscrible_to_psubscrible_enable | 开启或关闭SUBSCRIBE转PSUBSCRIBE功能,可选值:
| 标准️️❌ 集群✔️️️️️ 读写分离✔️ | 标准️️❌ 集群✔️️️️️ 读写分离✔️ | 标准️️❌ 集群✔️️️️️ 读写分离✔️ | 标准️️❌ 集群✔️️️️️ 读写分离✔️ | ❌ |
appendfsync | AOF(AppendOnly File)持久化功能的fsync频率,仅在appendonly参数开启时生效,默认为everysec,不支持修改。 | 标准️️✔️ 集群✔️️️️️ 读写分离✔️ | 标准️️✔️ 集群✔️️️️️ 读写分离✔️ | 标准️️✔️ 集群✔️️️️️ 读写分离✔️ | 标准️️✔️ 集群✔️️️️️ 读写分离✔️ | 标准️️✔️ 集群✔️️️️️ 读写分离✔️ |
appendonly | 开启或关闭主节点的AOF持久化功能,可选值:
| 标准️️✔️ 集群✔️️️️️ 读写分离✔️ | 标准️️✔️ 集群✔️️️️️ 读写分离✔️ | 标准️️✔️ 集群✔️️️️️ 读写分离✔️ | 标准️️✔️ 集群✔️️️️️ 读写分离✔️ | 标准️️✔️ 集群✔️️️️️ 读写分离✔️ |
| pubsub为限制对发布订阅客户端的输出缓冲,默认值为33554432 8388608 60。 normal为限制对普通客户端的输出缓冲,默认值为524288000 0 0。 参数值格式均为
重要
| 标准️️✔️ 集群✔️️️️️ 读写分离✔️ | 标准️️✔️ 集群✔️️️️️ 读写分离✔️ | 标准️️✔️ 集群✔️️️️️ 读写分离✔️ | 标准️️✔️ 集群✔️️️️️ 读写分离✔️ | 标准️️✔️ 集群✔️️️️️ 读写分离✔️ |
dynamic-hz | 开启或关闭动态hz,可选值:
| 标准️️✔️ 集群✔️️️️️ 读写分离✔️ | 标准️️✔️ 集群✔️️️️️ 读写分离✔️ | 标准️️✔️ 集群✔️ 读写分离✔️ | ❌ | ❌ |
| 兼容Redis 6.0及以下版本为hash-max-ziplist-entries和hash-max-ziplist-value。 当哈希对象同时满足以下两个条件时, 使用ziplist编码。
| ❌ | 标准️️✔️ 集群✔️️️️️ 读写分离✔️ | 标准️️✔️ 集群✔️️️️️ 读写分离✔️ | 标准️️✔️ 集群✔️️️️️ 读写分离✔️ | 标准️️✔️ 集群✔️️️️️ 读写分离✔️ |
| 兼容Redis 7.0版本起为hash-max-listpack-entries和hash-max-listpack-value。 当哈希对象同时满足以下两个条件时, 使用ziplist(listpack)编码。
| 标准️️✔️ 集群✔️️️️️ 读写分离✔️ | ❌ | ❌ | ❌ | ❌ |
hello_enabled | 在集群架构代理模式或读写分离架构,是否开启通过HELLO命令切换协议RESP2、RESP3协议的开关。取值:
说明 仅Proxy 7.0.9及以上版本支持该参数。 | 标准️️❌ 集群✔️ 读写分离✔️ | 标准️️❌ 集群✔️ 读写分离✔️ | 标准️️❌ 集群✔️ 读写分离✔️ | ❌ | ❌ |
hz | 设置实例后台任务执行频率,例如清除过期键任务。取值范围为1~500,默认值为10,即每秒执行10次。 说明 该值越大,CPU资源消耗越多,但在过期键较多的情况下清理频率也更高,同时实例能够更精确地处理超时。建议取值不超过100。 | 标准️️✔️ 集群✔️️️️️ 读写分离✔️ | 标准️️✔️ 集群✔️️️️️ 读写分离✔️ | 标准️️✔️ 集群✔️️️️️ 读写分离✔️ | 标准️️✔️ 集群✔️️️️️ 读写分离✔️ | 标准️️✔️ 集群✔️️️️️ 读写分离✔️ |
latency-tracking | 是否开启命令时延监控,可选值:
说明 仅兼容Redis 7.0及以上支持该参数。 | 标准️️✔️ 集群✔️️️️️ 读写分离✔️ | ❌ | ❌ | ❌ | ❌ |
lazyfree-lazy-eviction | 是否开启基于lazyfree的驱逐功能,可选值:
| 标准️️✔️ 集群✔️️️️️ 读写分离✔️ | 标准️️✔️ 集群✔️️️️️ 读写分离✔️ | 标准️️✔️ 集群✔️️️️️ 读写分离✔️ | 标准️️✔️ 集群✔️️️️️ 读写分离✔️ | ❌ |
lazyfree-lazy-expire | 是否开启基于lazyfree的过期Key删除功能,可选值:
| 标准️️✔️ 集群✔️️️️️ 读写分离✔️ | 标准️️✔️ 集群✔️️️️️ 读写分离✔️ | 标准️️✔️ 集群✔️️️️️ 读写分离✔️ | 标准️️✔️ 集群✔️️️️️ 读写分离✔️ | ❌ |
lazyfree-lazy-server-del | DEL命令是否基于lazyfree异步删除数据,可选值:
| 标准️️✔️ 集群✔️️️️️ 读写分离✔️ | 标准️️✔️ 集群✔️️️️️ 读写分离✔️ | 标准️️✔️ 集群✔️️️️️ 读写分离✔️ | 标准️️✔️ 集群✔️️️️️ 读写分离✔️ | ❌ |
lazyfree-lazy-user-del | 执行DEL命令时是否基于lazyfree异步删除数据,可选值:
| 标准️️✔️ 集群✔️️️️️ 读写分离✔️ | 标准️️✔️ 集群✔️️️️️ 读写分离✔️ | ❌ | ❌ | ❌ |
lazyfree-lazy-user-flush | 是否将FLUSHDB、FLUSHALL、SCRIPT FLUSH、FUNCTION FLUSH命令自动转换为Lazyfree异步删除模式,可选值:
说明 仅兼容Redis 7.0及以上支持该参数。 | 标准️️✔️ 集群✔️️️️️ 读写分离✔️ | ❌ | ❌ | ❌ | ❌ |
list-compress-depth | 列表中两端不被压缩的节点个数,取值范围0~65535。
| 标准️️✔️ 集群✔️️️️️ 读写分离✔️ | 标准️️✔️ 集群✔️️️️️ 读写分离✔️ | 标准️️✔️ 集群✔️️️️️ 读写分离✔️ | 标准️️✔️ 集群✔️️️️️ 读写分离✔️ | ❌ |
list-max-ziplist-entries | 链表对象同时满足以下两个条件时, 使用ziplist编码。
| ❌ | ❌ | ❌ | ❌ | 标准️️✔️ 集群✔️️️️️ 读写分离✔️ |
list-max-ziplist-value | ||||||
| 兼容Redis 6.0及以下版本为list-max-ziplist-size,Redis 7.0版本起为list-max-listpack-size。
| 标准️️✔️ 集群✔️️️️️ 读写分离✔️ | 标准️️✔️ 集群✔️️️️️ 读写分离✔️ | 标准️️✔️ 集群✔️️️️️ 读写分离✔️ | 标准️️✔️ 集群✔️️️️️ 读写分离✔️ | ❌ |
maxmemory-policy | 数据逐出策略。当实例内存不足,使用量达到Maxmemory时,会触发数据逐出,您可以选择不同的数据逐出策略。取值如下: 说明
| 标准️️✔️ 集群✔️️️️️ 读写分离✔️ | 标准️️✔️ 集群✔️️️️️ 读写分离✔️ | 标准️️✔️ 集群✔️️️️️ 读写分离✔️ | 标准️️✔️ 集群✔️️️️️ 读写分离✔️ | 标准️️✔️ 集群✔️️️️️ 读写分离✔️ |
maxmemory-eviction-tenacity | 数据逐出(Eviction)因子,用于设置每次数据逐出的延时,取值为[0-100],默认为10。
说明 仅Redis 7.0支持该参数。 | 标准️️✔️ 集群✔️️️️️ 读写分离✔️ | ❌ | ❌ | ❌ | ❌ |
active-expire-effort | 删除过期Key(Expire)因子,用于设置每次删除过期Key的延时,取值为[1-10],默认为1。数值越大删除过期Key越快,同时消耗的CPU资源也更多。 | 标准️️✔️ 集群✔️️️️️ 读写分离✔️ | 标准️️✔️ 集群✔️️️️️ 读写分离✔️ | ❌ | ❌ | ❌ |
notify-keyspace-events | notify-keyspace-events的参数值可以是以下字符的任意组合,它指定了服务器该发送哪些类型的通知。该参数将针对整个实例(所有DB)启用通知,启用后会额外消耗CPU,更多信息请参见Redis keyspace notifications。
重要 输入的参数中至少包含K或E, 否则不会有任何通知被分发。 例如您希望订阅过期事件,您可以在参数设置中将该参数设置为 | 标准️️✔️ 集群✔️️️️️ 读写分离✔️ | 标准️️✔️ 集群✔️️️️️ 读写分离✔️ | 标准️️✔️ 集群✔️️️️️ 读写分离✔️ | 标准️️✔️ 集群✔️️️️️ 读写分离✔️ | 标准️️✔️ 集群✔️️️️️ 读写分离✔️ |
set-max-intset-entries | 当Set集合内的数据符合以下条件时,会使用intset编码。
| 标准️️✔️ 集群✔️️️️️ 读写分离✔️ | 标准️️✔️ 集群✔️️️️️ 读写分离✔️ | 标准️️✔️ 集群✔️️️️️ 读写分离✔️ | 标准️️✔️ 集群✔️️️️️ 读写分离✔️ | 标准️️✔️ 集群✔️️️️️ 读写分离✔️ |
slowlog-log-slower-than | 慢日志的阈值,慢日志将记录执行时间超过该阈值的命令。单位为ms,默认值为20000(即20毫秒),取值范围10000~10000000。 | 标准️️✔️ 集群✔️️️️️ 读写分离✔️ | 标准️️✔️ 集群✔️️️️️ 读写分离✔️ | 标准️️✔️ 集群✔️️️️️ 读写分离✔️ | 标准️️✔️ 集群✔️️️️️ 读写分离✔️ | 标准️️✔️ 集群✔️️️️️ 读写分离✔️ |
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表示无限制。 | 标准️️✔️ 集群✔️️️️️ 读写分离✔️ | 标准️️✔️ 集群✔️️️️️ 读写分离✔️ | 标准️️✔️ 集群✔️ 读写分离✔️ | ❌ | ❌ |
tracking-table-max-keys | 设置Tracking Table中存储Key数量的上限,取值为[0-1000000000],默认为1000000。 说明 仅Redis 7.0支持该参数。 | 标准️️✔️ 集群✔️️️️️ 读写分离✔️ | ❌ | ❌ | ❌ | ❌ |
timeout | 当客户端的空闲时间达到指定秒数后,实例会关闭该连接,取值为[0,100000],默认为0(表示不断开任何连接),单位为秒。 | 标准️️✔️ 集群✔️️️️️ 读写分离✔️ | 标准️️✔️ 集群✔️️️️️ 读写分离✔️ | 标准️️✔️ 集群✔️️️️️ 读写分离✔️ | 标准️️✔️ 集群✔️️️️️ 读写分离✔️ | ❌ |
| 兼容Redis 6.0及以下版本为zset-max-ziplist-entries和zset-max-ziplist-value。 排序集合对象同时满足以下两个条件时, 使用ziplist编码。
| ❌ | 标准️️✔️ 集群✔️️️️️ 读写分离✔️ | 标准️️✔️ 集群✔️️️️️ 读写分离✔️ | 标准️️✔️ 集群✔️️️️️ 读写分离✔️ | 标准️️✔️ 集群✔️️️️️ 读写分离✔️ |
| 兼容Redis 7.0版本起为zset-max-listpack-entries和zset-max-listpack-value。 排序集合对象同时满足以下两个条件时, 使用listpack编码。
| 标准️️✔️ 集群✔️️️️️ 读写分离✔️ | ❌ | ❌ | ❌ | ❌ |