云数据库Redis支持自定义部分实例参数,不同的引擎版本和架构支持的参数有所区别,本文为您介绍各参数的详细说明与通用的设置方法。
注意事项
由于部分参数对实例的小版本有一定依赖,如果小版本过低在设置时可能提示如下错误。您需要将实例升级至最新的小版本。具体操作,请参见升级小版本。
图 1. 小版本过低提示
设置参数
- 登录Redis管理控制台。
- 在顶部菜单栏的左上角,选择实例所属的地域。
- 在实例列表页,单击目标实例ID。
- 在左侧导航栏,单击参数设置。
- 找到目标参数,单击其操作列的修改。
- 在弹出的对话框中设置该参数的值。关于参数和参数值的说明,请根据Redis示例的引擎版本,选择查看下文的说明。
警告 部分参数在提交修改后会自动重启实例(重启过程中实例会发生秒级闪断,请谨慎操作),详情请参见目标参数的重启生效列。 - 单击确定。
参数说明概览
由于不同引擎版本和架构支持设置的参数有所区别,您可以单击下表中的链接快速跳转至对应引擎版本的参数说明。
为便于阅读,约定本文表格中的✔️表示该架构支持该参数,❌表示该架构不支持该参数。
说明 为最大程度保障Redis实例的稳定运行,目前仅开放部分参数,如果某个参数未在本文中列出,即不支持自定义设置该参数。
引擎版本 | 对应链接 |
---|---|
Redis 6.0版本 | Redis 6.0版本支持配置的参数 |
Redis 5.0版本 | Redis 5.0版本支持配置的参数 |
Redis 4.0版本 | Redis 4.0版本支持配置的参数 |
Redis 2.8版本 | Redis 2.8版本支持配置的参数 |
Redis 6.0版本支持配置的参数
参数 | 说明 | 标准架构 |
---|---|---|
#no_loose_disabled-commands | 设置禁用命令,可根据业务需求禁用某些高危命令或高时间复杂度的命令,例如flushall、flushdb、keys、hgetall、eval、evalsha、script等。 说明 命令以小写字母的形式填写,各命令之间英文逗号(,)分隔。 |
✔️ |
#no_loose_sentinel-enabled | 开启或关闭哨兵(Sentinel)兼容模式,可选值: - yes:开启。 - no:默认值,关闭。 |
✔️ |
appendonly | 开启或关闭主节点的AOF持久化功能,可选值: - yes:默认值,开启AOF持久化。 - no:关闭AOF持久化。 |
✔️ |
client-output-buffer-limit pubsub | 限制对发布订阅客户端的输出缓冲,参数值格式为<hard limit> <soft limit> <soft seconds> ,默认值为33554432 8388608 60。- <hard limit> :当某客户端的输出缓冲区占用内存达到或超过hard limit的限制时,断开该客户端的连接。hard limit值的单位为Byte。- <soft limit> 和<soft seconds> :当某客户端的输出缓冲区占用内存达到或超过soft limit的限制,且该状态持续时间大于等于soft seconds限定的秒数,断开该客户端的连接。soft limit值的单位为Byte,soft seconds值的单位为秒。 |
✔️ |
dynamic-hz | 开启或关闭动态hz,取值: - yes:默认值,开启。 - no:关闭。 |
✔️ |
hash-max-ziplist-entries | 哈希对象同时满足以下两个条件时, 使用ziplist编码。 - 哈希对象保存的所有键值对的键和值的字符串长度的字节数都小于hash-max-ziplist-value的值。 - 哈希对象保存的键值对数量小于hash-max-ziplist-entries的值。 |
✔️ |
hash-max-ziplist-value | 哈希对象同时满足以下两个条件时, 使用ziplist编码。 - 哈希对象保存的所有键值对的键和值的字符串长度的字节数都小于hash-max-ziplist-value的值。 - 哈希对象保存的键值对数量小于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 | RENAME、SUNIONSTORE等命令是否基于lazyfree异步删除数据,可选值:
- yes:默认值,开启。
- no:不开启。
| ✔️ |
| lazyfree-lazy-user-del | 执行DEL命令时是否基于lazyfree异步删除数据,可选值:
- yes:默认值,开启。
- no:不开启。
| ✔️ |
| list-compress-depth | 列表中两端不被压缩的节点个数,取值范围0~65535。
- 0:默认值,表示都不压缩。
- 1~65535:表示list两端各有1~65535个节点不压缩,中间的节点压缩。
| ✔️ |
| list-max-ziplist-size |
- 取正值表示按照数据项个数来限定每个quicklist节点上的ziplist长度。例如,当该参数配置为5时,每个quicklist节点的ziplist最多包含5个数据项。
- 取负值表示按照占用字节数来限定每个quicklist节点上的ziplist长度,可选值:
- - -5:每个quicklist节点上的ziplist大小不能超过64 Kb。
- -4:每个quicklist节点上的ziplist大小不能超过32 Kb。
- -3:每个quicklist节点上的ziplist大小不能超过16 Kb。
- -2:默认值,每个quicklist节点上的ziplist大小不能超过8 Kb。
- -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的别名。
说明 输入的参数中至少包含K或E, 否则不会有任何通知被分发。 | ✔️ | | set-max-intset-entries | 当Set集合内的数据符合以下条件时,会使用intset编码。
- 当集合内所有数据都是字符对象。
- 都是基数为10的整数,范围为64位有符号整数。
| ✔️ | | slowlog-log-slower-than | 设置慢日志的记录阈值,即设置对执行时间大于多少微秒的操作进行记录。取值范围10000~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 | 在客户端连接空闲时长达到指定值时关闭连接,取值范围:0~100,000,单位为秒。
说明 0表示不开启。 | ✔️ |
| zset-max-ziplist-entries | 排序集合对象同时满足以下两个条件时, 使用ziplist编码。
- 排序集合对象保存的所有键值对的键和值的字符串长度的字节数都小于zset-max-ziplist-value的值。
- 排序集合对象保存的键值对数量小于zset-max-ziplist-entries的值。
| ✔️ |
| zset-max-ziplist-value | 排序集合对象同时满足以下两个条件时, 使用ziplist编码。
- 排序集合对象保存的所有键值对的键和值的字符串长度的字节数都小于zset-max-ziplist-value的值。
- 排序集合对象保存的键值对数量小于zset-max-ziplist-entries的值。
| ✔️ |
Redis 5.0版本支持配置的参数
参数 | 说明 | 标准架构 | 集群架构 | 读写分离架构 |
---|---|---|---|---|
#no_loose_audit-read-enabled | 开启或关闭读请求审计,开启后审计日志中显示读请求。可选值: - yes:开启。 - no:默认值,关闭。 |
❌ | ✔️ | ✔️ |
#no_loose_check-whitelist-always | 开启专有网络免密后默认不检查客户端的IP是否在Redis白名单中,此时如果将该参数的值设置为yes,则白名单依然生效。可选值: - yes:开启。 - no:默认值,关闭。 |
✔️ | ✔️ | ✔️ |
#no_loose_disabled-commands | 设置禁用命令,可根据业务需求禁用某些高危命令或高时间复杂度的命令,例如flushall、flushdb、keys、hgetall、eval、evalsha、script等。 |
说明 命令以小写字母的形式填写,多个命令间使用英文逗号(,)分隔。 | ✔️ | ✔️ | ✔️ |
| #no_loose_sentinel-enabled | 开启或关闭哨兵(Sentinel)兼容模式,可选值:
- yes:开启。
- no:默认值,关闭。
| ✔️ | ✔️ | ✔️ |
| #no_loose_ssl-enabled | 开启或关闭SSL加密连接,可选值:
- yes:开启。
- no:默认值,关闭。
| ❌ | ✔️ | ✔️ |
| #no_loose_statistics-cmds | 要统计的命令,默认为空,即不统计。多个命令以英文逗号(,)分隔。 | ❌ | ✔️ | ✔️ |
| #no_loose_statistics-ip-enable | 是否开启IP统计,可选值:
- yes:开启。
- no:默认值,关闭。
| ❌ | ✔️ | ✔️ |
| #no_loose_statistics-keys | 要统计的Key,默认为空,即不统计。多个Key以英文逗号(,)分隔。 | ❌ | ✔️ | ✔️ |
| #no_loose_tls-min-version | 设置实例支持的TLS最低版本,可选值:
- TLSv1,默认值。
- TLSv1.1。
- TLSv1.2。
| ❌ | ✔️ | ✔️ |
| cluster_compat_enable | 开启或关闭原生Redis cluster语法兼容,可选值:
- 0:关闭。
- 1:默认值,开启。
| ❌ | ✔️ | ✔️ |
| max_session_processing | 单个连接允许堆积的最大请求数。代理节点转发客户端的请求给数据节点,但是未收到数据节点的回复,此时该请求即处于堆积状态。该参数主要用于限制代理节点前后端处理能力差异导致的请求堆积,避免内存上涨的问题。 | ❌ | ✔️ | ✔️ |
| ptod_enabled | 是否将客户端的IP地址通过代理节点透传到数据节点,可选值:
- 0:默认值,不透传客户IP地址。
- 1:透传客户端IP地址。
| ❌ | ✔️ | ✔️ |
| readonly_lua_route_ronode_enable | 开启或关闭只读副本的Lua执行模式,可选值:
- 0:默认值,关闭Lua执行模式,只读副本不支持Lua,Lua命令会由主节点处理。
- 1:开启Lua执行模式,仅包含读操作的Lua会被转发到只读副本处理。
| ❌ | ❌ | ✔️ |
| read_request_only_ronode_whenrwsplit_enable | 开启或关闭只读账号请求定向转发,可选值:
- 0:默认值,关闭定向转发,只读账号的请求将按照权重分配到各节点,包括主节点。
- 1:开启定向转发,只读账号的请求将定向转发到只读副本,不会转发到主节点。
| ❌ | ❌ | ✔️ |
| rt_threshold_ms | 代理服务器中的慢日志阈值,单位为毫秒(ms)。如果代理服务器处理一个请求的时间超过该阈值,则会生成一条慢日志。
说明 计时方式:从代理服务器向数据节点发出请求开始,到代理服务器收到响应结束。 | ❌ | ✔️ | ✔️ |
| script_check_enable | 检查Lua脚本涉及的key是否在相同slot(槽),可选值:
- 0:不检查。
- 1:默认值,检查。
| ❌ | ✔️ | ✔️ |
| transfer_subscrible_to_psubscrible_enable | 开启或关闭SUBSCRIBE转PSUBSCRIBE功能,可选值:
- 0:默认值,表示关闭该功能,二者不转换。
- 1:开启该功能,代理节点会将SUBSCRIBE转换成PSUBSCRIBE处理。
说明 当在Lua中使用了PUB或SUB类命令,导致在订阅的通道无法收到通知时,可以开启该功能。
| ❌ | ✔️ | ✔️ |
| appendonly | 开启或关闭主节点的AOF持久化功能,可选值:
- yes:默认值,开启AOF持久化。
- no:关闭AOF持久化。
| ✔️ | ✔️ | ✔️ |
| client-output-buffer-limit pubsub | 限制对发布订阅客户端的输出缓冲,参数值格式为<hard limit> <soft limit> <soft seconds>
,默认值为33554432 8388608 60。
- <hard limit>
:当某客户端的输出缓冲区占用内存达到或超过hard limit的限制时,断开该客户端的连接。hard limit值的单位为Byte。
- <soft limit>
和<soft seconds>
:当某客户端的输出缓冲区占用内存达到或超过soft limit的限制,且该状态持续时间大于等于soft seconds限定的秒数,断开该客户端的连接。soft limit值的单位为Byte,soft seconds值的单位为秒。
| ✔️ | ✔️ | ✔️ |
| dynamic-hz | 开启或关闭动态hz,可选值:
- yes:默认值,开启。
- no:关闭。
| ✔️ | ❌ | ❌ |
| hash-max-ziplist-entries | 哈希对象同时满足以下两个条件时, 使用ziplist编码。
- 哈希对象保存的所有键值对的键和值的字符串长度的字节数都小于hash-max-ziplist-value的值。
- 哈希对象保存的键值对数量小于hash-max-ziplist-entries的值。
| ✔️ | ✔️ | ✔️ |
| hash-max-ziplist-value | 哈希对象同时满足以下两个条件时, 使用ziplist编码。
- 哈希对象保存的所有键值对的键和值的字符串长度的字节数都小于hash-max-ziplist-value的值。
- 哈希对象保存的键值对数量小于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~65535:表示list两端各有1~65535个节点不压缩,中间的节点压缩。
| ✔️ | ✔️ | ✔️ |
| list-max-ziplist-size |
- 取正值表示按照数据项个数来限定每个quicklist节点上的ziplist长度。例如,当该参数配置为5时,每个quicklist节点的ziplist最多包含5个数据项。
- 取负值表示按照占用字节数来限定每个quicklist节点上的ziplist长度,可选值:
- - -5:每个quicklist节点上的ziplist大小不能超过64 Kb。
- -4:每个quicklist节点上的ziplist大小不能超过32 Kb。
- -3:每个quicklist节点上的ziplist大小不能超过16 Kb。
- -2:默认值,每个quicklist节点上的ziplist大小不能超过8 Kb。
- -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的别名。
说明 输入的参数中至少包含K或E, 否则不会有任何通知被分发。 | ✔️ | ✔️ | ✔️ | | set-max-intset-entries | 当Set集合内的数据符合以下条件时,会使用intset编码。
- 当集合内所有数据都是字符对象。
- 都是基数为10的整数,范围为64位有符号整数。
| ✔️ | ✔️ | ✔️ | | slowlog-log-slower-than | 设置慢日志的记录阈值,即设置对执行时间大于多少微秒的操作进行记录。取值范围10000~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 | 在客户端连接空闲时长达到指定值时关闭连接,取值范围:0~100,000,单位为秒。
说明 0表示不开启。 | ✔️ | ✔️ | ✔️ |
| zset-max-ziplist-entries | 排序集合对象同时满足以下两个条件时, 使用ziplist编码。
- 排序集合对象保存的所有键值对的键和值的字符串长度的字节数都小于zset-max-ziplist-value的值。
- 排序集合对象保存的键值对数量小于zset-max-ziplist-entries的值。
| ✔️ | ✔️ | ✔️ |
| zset-max-ziplist-value | 排序集合对象同时满足以下两个条件时, 使用ziplist编码。
- 排序集合对象保存的所有键值对的键和值的字符串长度的字节数都小于zset-max-ziplist-value的值。
- 排序集合对象保存的键值对数量小于zset-max-ziplist-entries的值。
| ✔️ | ✔️ | ✔️ |
Redis 4.0版本支持配置的参数
参数 | 说明 | 标准架构 | 集群架构 | 读写分离架构 |
---|---|---|---|---|
#no_loose_audit-read-enabled | 开启或关闭读请求审计,开启后审计日志中显示读请求。可选值: - yes:开启。 - no:默认值,关闭。 |
❌ | ✔️ | ✔️ |
#no_loose_check-whitelist-always | 开启专有网络免密后默认不检查客户端的IP是否在Redis白名单中,此时如果将该参数的值设置为yes,则白名单依然生效。可选值: - yes:开启。 - no:默认值,关闭。 |
✔️ | ✔️ | ✔️ |
#no_loose_disabled-commands | 设置禁用命令,可根据业务需求禁用某些高危命令或高时间复杂度的命令,例如flushall、flushdb、keys、hgetall、eval、evalsha、script等。 |
说明 命令以小写字母的形式填写,多个命令间使用英文逗号(,)分隔。 | ✔️ | ✔️ | ✔️ |
| #no_loose_sentinel-enabled | 开启或关闭哨兵(Sentinel)兼容模式,可选值:
- yes:开启。
- no:默认值,关闭。
| ✔️ | ✔️ | ✔️ |
| #no_loose_ssl-enabled | 开启或关闭SSL加密连接,可选值:
- yes:开启。
- no:默认值,关闭。
| ❌ | ✔️ | ✔️ |
| #no_loose_statistics-cmds | 要统计的命令,默认为空,即不统计。多个命令以英文逗号(,)分隔。 | ❌ | ✔️ | ✔️ |
| #no_loose_statistics-ip-enable | 是否开启IP统计,可选值:
- yes:开启。
- no:默认值,关闭。
| ❌ | ✔️ | ✔️ |
| #no_loose_statistics-keys | 要统计的Key,默认为空,即不统计。多个Key以英文逗号(,)分隔。 | ❌ | ✔️ | ✔️ |
| #no_loose_tls-min-version | 设置实例支持的TLS最低版本,可选值:
- TLSv1,默认值。
- TLSv1.1。
- TLSv1.2。
| ❌ | ✔️ | ✔️ |
| cluster_compat_enable | 开启或关闭原生Redis cluster语法兼容,可选值:
- 0:关闭。
- 1:默认值,开启。
| ❌ | ✔️ | ✔️ |
| max_session_processing | 单个连接允许堆积的最大请求数。代理节点转发客户端的请求给数据节点,但是未收到数据节点的回复,此时该请求即处于堆积状态。该参数主要用于限制代理节点前后端处理能力差异导致的请求堆积,避免内存上涨的问题。 | ❌ | ✔️ | ✔️ |
| ptod_enabled | 是否将客户端的IP地址通过代理节点透传到数据节点,可选值:
- 0:默认值,不透传客户IP地址。
- 1:透传客户端IP地址。
| ❌ | ✔️ | ✔️ |
| readonly_lua_route_ronode_enable | 开启或关闭只读副本的Lua执行模式,可选值:
- 0:默认值,关闭Lua执行模式,只读副本不支持Lua,Lua命令会由主节点处理。
- 1:开启Lua执行模式,仅包含读操作的Lua会被转发到只读副本处理。
| ❌ | ❌ | ✔️ |
| read_request_only_ronode_whenrwsplit_enable | 开启或关闭只读账号请求定向转发,可选值:
- 0:默认值,关闭定向转发,只读账号的请求将按照权重分配到各节点,包括主节点。
- 1:开启定向转发,只读账号的请求将定向转发到只读副本,不会转发到主节点。
| ❌ | ❌ | ✔️ |
| rt_threshold_ms | 代理服务器中的慢日志阈值,单位为毫秒(ms)。如果代理服务器处理一个请求的时间超过该阈值,则会生成一条慢日志。
说明 计时方式:从代理服务器向数据节点发出请求开始,到代理服务器收到响应结束。 | ❌ | ✔️ | ✔️ |
| script_check_enable | 检查Lua脚本涉及的key是否在相同slot(槽),可选值:
- 0:不检查。
- 1:默认值,检查。
| ❌ | ✔️ | ✔️ |
| transfer_subscrible_to_psubscrible_enable | 开启或关闭SUBSCRIBE转PSUBSCRIBE功能,可选值:
- 0:默认值,表示关闭该功能,二者不转换。
- 1:开启该功能,代理节点会将SUBSCRIBE转换成PSUBSCRIBE处理。
说明 当在Lua中使用了PUB或SUB类命令,导致在订阅的通道无法收到通知时,可以开启该功能。
| ❌ | ✔️ | ✔️ |
| appendonly | 开启或关闭主节点的AOF持久化功能,可选值:
- yes:默认值,开启AOF持久化。
- no:关闭AOF持久化。
| ✔️ | ✔️ | ✔️ |
| client-output-buffer-limit pubsub | 限制对发布订阅客户端的输出缓冲,参数值格式为<hard limit> <soft limit> <soft seconds>
,默认值为33554432 8388608 60。
- <hard limit>
:当某客户端的输出缓冲区占用内存达到或超过hard limit的限制时,断开该客户端的连接。hard limit值的单位为Byte。
- <soft limit>
和<soft seconds>
:当某客户端的输出缓冲区占用内存达到或超过soft limit的限制,且该状态持续时间大于等于soft seconds限定的秒数,断开该客户端的连接。soft limit值的单位为Byte,soft seconds值的单位为秒。
| ✔️ | ✔️ | ✔️ |
| hash-max-ziplist-entries | 哈希对象同时满足以下两个条件时, 使用ziplist编码。
- 哈希对象保存的所有键值对的键和值的字符串长度的字节数都小于hash-max-ziplist-value的值。
- 哈希对象保存的键值对数量小于hash-max-ziplist-entries的值。
| ✔️ | ✔️ | ✔️ |
| hash-max-ziplist-value | 哈希对象同时满足以下两个条件时, 使用ziplist编码。
- 哈希对象保存的所有键值对的键和值的字符串长度的字节数都小于hash-max-ziplist-value的值。
- 哈希对象保存的键值对数量小于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~65535:表示list两端各有1~65535个节点不压缩,中间的节点压缩。
| ✔️ | ✔️ | ✔️ |
| list-max-ziplist-size |
- 取正值表示按照数据项个数来限定每个quicklist节点上的ziplist长度。例如,当该参数配置为5时,每个quicklist节点的ziplist最多包含5个数据项。
- 取负值表示按照占用字节数来限定每个quicklist节点上的ziplist长度,可选值:
- - -5:每个quicklist节点上的ziplist大小不能超过64 Kb。
- -4:每个quicklist节点上的ziplist大小不能超过32 Kb。
- -3:每个quicklist节点上的ziplist大小不能超过16 Kb。
- -2:默认值,每个quicklist节点上的ziplist大小不能超过8 Kb。
- -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的别名。
说明 输入的参数中至少包含K或E, 否则不会有任何通知被分发。 | ✔️ | ✔️ | ✔️ | | set-max-intset-entries | 当Set集合内的数据符合以下条件时,会使用intset编码。
- 当集合内所有数据都是字符对象。
- 都是基数为10的整数,范围为64位有符号整数。
| ✔️ | ✔️ | ✔️ | | slowlog-log-slower-than | 设置慢日志的记录阈值,即设置对执行时间大于多少微秒的操作进行记录。取值范围10000~10000000,默认值为10000。 | ✔️ | ✔️ | ✔️ | | slowlog-max-len | 慢日志最多保存记录条数,取值范围100~10000,默认值为1024。 | ✔️ | ✔️ | ✔️ | | timeout | 在客户端连接空闲时长达到指定值时关闭连接,取值范围:0~100,000,单位为秒。
说明 0表示不开启。 | ✔️ | ✔️ | ✔️ |
| zset-max-ziplist-entries | 排序集合对象同时满足以下两个条件时, 使用ziplist编码。
- 排序集合对象保存的所有键值对的键和值的字符串长度的字节数都小于zset-max-ziplist-value的值。
- 排序集合对象保存的键值对数量小于zset-max-ziplist-entries的值。
| ✔️ | ✔️ | ✔️ |
| zset-max-ziplist-value | 排序集合对象同时满足以下两个条件时, 使用ziplist编码。
- 排序集合对象保存的所有键值对的键和值的字符串长度的字节数都小于zset-max-ziplist-value的值。
- 排序集合对象保存的键值对数量小于zset-max-ziplist-entries的值。
| ✔️ | ✔️ | ✔️ |
Redis 2.8版本支持配置的参
参数 | 说明 | 标准版 | 集群版 | 读写分离版 |
---|---|---|---|---|
#no_loose_audit-read-enabled | 开启或关闭读请求审计,开启后审计日志中显示读请求。可选值: - yes:开启。 - no:默认值,关闭。 |
❌ | ✔️ | ✔️ |
#no_loose_disabled-commands | 设置禁用命令,可根据业务需求禁用某些高危命令或高时间复杂度的命令,例如flushall、flushdb、keys、hgetall、eval、evalsha、script等。 |
说明 命令以小写字母的形式填写,多个命令间使用英文逗号(,)分隔。 | ✔️ | ✔️ | ✔️ |
| #no_loose_ssl-enabled | 开启或关闭SSL加密连接,可选值:
- yes:开启。
- no:默认值,关闭。
| ❌ | ✔️ | ✔️ |
| #no_loose_statistics-cmds | 要统计的命令,默认为空,即不统计。多个命令以英文逗号(,)分隔。 | ❌ | ✔️ | ✔️ |
| #no_loose_statistics-ip-enable | 是否开启IP统计,可选值:
- yes:开启。
- no:默认值,关闭。
| ❌ | ✔️ | ✔️ |
| #no_loose_statistics-keys | 要统计的Key,默认为空,即不统计。多个Key以英文逗号(,)分隔。 | ❌ | ✔️ | ✔️ |
| #no_loose_tls-min-version | 设置实例支持的TLS最低版本,可选值:
- TLSv1,默认值。
- TLSv1.1。
- TLSv1.2。
| ❌ | ✔️ | ✔️ |
| cluster_compat_enable | 开启或关闭原生Redis cluster语法兼容,可选值:
- 0:关闭。
- 1:默认值,开启。
| ❌ | ✔️ | ✔️ |
| max_session_processing | 单个连接允许堆积的最大请求数。代理节点转发客户端的请求给数据节点,但是未收到数据节点的回复,此时该请求即处于堆积状态。该参数主要用于限制代理节点前后端处理能力差异导致的请求堆积,避免内存上涨的问题。 | ❌ | ✔️ | ✔️ |
| read_request_only_ronode_whenrwsplit_enable | 开启或关闭只读账号请求定向转发,可选值:
- 0:默认值,关闭定向转发,只读账号的请求将按照权重分配到各节点,包括主节点。
- 1:开启定向转发,只读账号的请求将定向转发到只读副本,不会转发到主节点。
| ❌ | ❌ | ✔️ |
| rt_threshold_ms | 代理服务器中的慢日志阈值,单位为毫秒(ms)。如果代理服务器处理一个请求的时间超过该阈值,则会生成一条慢日志。
说明 计时方式:从代理服务器向数据节点发出请求开始,到代理服务器收到响应结束。 | ❌ | ✔️ | ✔️ |
| script_check_enable | 检查Lua脚本涉及的key是否在相同slot(槽),可选值:
- 0:不检查。
- 1:默认值,检查。
| ❌ | ✔️ | ✔️ |
| appendonly | 开启或关闭主节点的AOF持久化功能,可选值:
- yes:默认值,开启AOF持久化。
- no:关闭AOF持久化。
| ✔️ | ✔️ | ✔️ |
| client-output-buffer-limit pubsub | 限制对发布订阅客户端的输出缓冲,参数值格式为<hard limit> <soft limit> <soft seconds>
,默认值为33554432 8388608 60。
- <hard limit>
:当某客户端的输出缓冲区占用内存达到或超过hard limit的限制时,断开该客户端的连接。hard limit值的单位为Byte。
- <soft limit>
和<soft seconds>
:当某客户端的输出缓冲区占用内存达到或超过soft limit的限制,且该状态持续时间大于等于soft seconds限定的秒数,断开该客户端的连接。soft limit值的单位为Byte,soft seconds值的单位为秒。
| ✔️ | ✔️ | ✔️ |
| hash-max-ziplist-entries | 哈希对象同时满足以下两个条件时, 使用ziplist编码。
- 哈希对象保存的所有键值对的键和值的字符串长度的字节数都小于hash-max-ziplist-value的值。
- 哈希对象保存的键值对数量小于hash-max-ziplist-entries的值。
| ✔️ | ✔️ | ✔️ |
| hash-max-ziplist-value | 哈希对象同时满足以下两个条件时, 使用ziplist编码。
- 哈希对象保存的所有键值对的键和值的字符串长度的字节数都小于hash-max-ziplist-value的值。
- 哈希对象保存的键值对数量小于hash-max-ziplist-entries的值。
| ✔️ | ✔️ | ✔️ |
| hz | 设置Redis后台任务执行频率,例如清除过期键任务。取值范围为1~500,默认值为10,即每秒执行10次。
说明 该值越大,CPU资源消耗越多,但在过期键较多的情况下清理频率也更高,同时Redis能够更精确地处理超时。建议取值不要超过100。 | ✔️ | ✔️ | ✔️ |
| list-max-ziplist-entries | 链表对象同时满足以下两个条件时, 使用ziplist编码。
- 链表对象保存的所有元素的字符串长度的字节数都小于list-max-ziplist-value的值。
- 链表集合对象保存的元素数量小于list-max-ziplist-entries的值。
| ✔️ | ✔️ | ✔️ |
| list-max-ziplist-value | 链表对象同时满足以下两个条件时, 使用ziplist编码。
- 链表对象保存的所有元素的字符串长度的字节数都小于list-max-ziplist-value的值。
- 链表集合对象保存的元素数量小于list-max-ziplist-entries的值。
| ✔️ | ✔️ | ✔️ |
| 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的别名。
说明 输入的参数中至少包含K或E, 否则不会有任何通知被分发。 | ✔️ | ✔️ | ✔️ |
| set-max-intset-entries | 当Set集合内的数据符合以下条件时,会使用intset编码。
- 当集合内所有数据都是字符对象。
- 都是基数为10的整数,范围为64位有符号整数。
| ✔️ | ✔️ | ✔️ |
| slowlog-log-slower-than | 设置慢日志的记录阈值,即设置对执行时间大于多少微秒的操作进行记录。取值范围10000~10000000,默认值为10000。 | ✔️ | ✔️ | ✔️ |
| slowlog-max-len | 慢日志最多保存记录条数,取值范围100~10000,默认值为1024。 | ✔️ | ✔️ | ✔️ |
| zset-max-ziplist-entries | 排序集合对象同时满足以下两个条件时, 使用ziplist编码。
- 排序集合对象保存的所有键值对的键和值的字符串长度的字节数都小于zset-max-ziplist-value的值。
- 排序集合对象保存的键值对数量小于zset-max-ziplist-entries的值。
| ✔️ | ✔️ | ✔️ |
| zset-max-ziplist-value | 排序集合对象同时满足以下两个条件时, 使用ziplist编码。
- 排序集合对象保存的所有键值对的键和值的字符串长度的字节数都小于zset-max-ziplist-value的值。
- 排序集合对象保存的键值对数量小于zset-max-ziplist-entries的值。
| ✔️ | ✔️ | ✔️ |