修改DCS实例配置参数
为了确保分布式缓存服务发挥出最优性能,您可以根据自己的业务情况对DCS缓存实例的运行参数进行调整。
例如,如需关闭实例的持久化功能,需要将“appendonly”修改为“no”。更多缓存实例的参数说明请参考缓存实例配置参数说明。
实例配置参数修改之后,参数会立即生效(不需要手动重启实例),如果是集群,会在所有分片生效。
修改单实例配置参数
- 登录分布式缓存服务管理控制台。
- 在管理控制台左上角单击,选择实例所在的区域。
- 单击左侧菜单栏的“缓存管理”。
- 在“缓存管理”页面,单击DCS缓存实例的名称。
- 单击“实例配置 > 参数配置”进入配置界面。
- 单击需要修改的参数右侧的“修改”,修改该参数。如果需要同时修改多个参数,单击参数列表上方的“修改”,可以同时修改多个参数。
图1 修改参数
- 根据需要修改配置参数。
各参数的详细介绍见缓存实例配置参数说明,一般情况下,按照系统默认值设置参数即可。
- 单击“保存”。
- 在弹出的修改确认对话框中,单击“是”,确认修改参数。
参数修改的任务状态“成功”后,修改参数成功。
缓存实例配置参数说明
- 表1中的内存优化相关参数可以参考Redis官网说明,链接:https://redis.io/topics/memory-optimization。
- 不同实例类型和版本支持配置的参数和取值可能略有不同,控制台参数配置页面中未显示的参数不支持修改。
参数名 |
参数解释 |
例外场景 |
取值范围 |
默认值 |
---|---|---|---|---|
active-expire-num |
定期删除过期键时随机检查key的数量。 |
Redis 3.0和Redis 6.0企业版实例不支持该参数。
说明:
该参数为2021年9月新增,在此之前创建的实例,如果无法正常修改参数值,请联系技术支持处理。 |
1~1,000 |
20 |
timeout |
客户端空闲N秒(timeout参数的取值)后将断开连接。参数值为0表示禁用该功能,即客户端空闲不会断开连接。 |
- |
0~7200 单位:秒 |
0 |
appendfsync |
操作系统的fsync函数刷新缓冲区数据到磁盘,有些操作系统会真正刷新磁盘上的数据,其他一些操作系统只会尝试尽快完成。 |
单机实例不支持该参数。 |
|
no |
appendonly |
指定是否在每次更新操作后进行日志记录,Redis在默认情况下是异步的把数据写入磁盘,如果不开启,可能会在断电时导致一段时间内的数据丢失。 |
单机实例不支持该参数。 |
说明:
目前appendonly参数默认只有yes和no两个配置项,如果是Redis 4.0/5.0/6.0基础版主备或集群实例,或企业版高性能型主备实例,联系运维人员放通该参数的白名单后,会显示only-replica配置项。 |
yes |
client-output-buffer-limit-slave-soft-seconds |
主从同步缓冲区大小超过client-output-buffer-slave-soft-limit主从同步缓冲区大小软限制,并持续时间超过此参数值时,服务端会主动断开连接。 |
- |
0~60 单位:秒 |
60 |
client-output-buffer-slave-hard-limit |
主从同步缓冲区大小硬限制。如果同步缓冲区大小超过这个值,则主从同步连接立即断开。 |
- |
0~17,179,869,184 单位:字节 |
1,717,986,918 |
client-output-buffer-slave-soft-limit |
主从同步缓冲区大小软限制。如果同步缓冲区大小超过这个值,并持续时间达到client-output-buffer-limit-slave-soft-seconds参数配置的秒数,则主从同步连接断开。 |
- |
0~17,179,869,184 单位:字节 |
1,717,986,918 |
maxmemory-policy |
内存使用达到上限(maxmemory)时,对缓存数据的逐出策略,有8个取值供选择。 |
- |
详情可参考Redis官网的逐出策略。 |
volatile-lru
说明:
如果是2020年7月之前创建的Redis实例,且没有修改过该参数,则默认值为noeviction。如果是2020年7月之后创建的实例,默认值都为volatile-lru。 |
lua-time-limit |
Lua脚本的最长执行时间。 |
- |
100~5,000 单位:毫秒 |
5,000 |
master-read-only |
设置实例为只读状态。设置只读后,所有写入命令将返回失败。 |
Proxy集群实例不支持该参数。 |
|
no |
maxclients |
最大同时连接的客户端个数。 该参数为单节点(单分片)连接数上限:
|
读写分离实例暂不支持该参数。 |
1,000~50,000 |
10,000 |
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表中记录数少于参数值,使用ziplist编码格式,节约内存。 |
- |
1~10000 |
512 |
hash-max-ziplist-value |
当hash表中各字段长度的最大值小于参数值时,使用ziplist编码格式,节约内存。 |
- |
1~10000 |
64 |
set-max-intset-entries |
当一个集合仅包含字符串且整型元素数量少于参数值时,使用intset编码格式,节约内存。 |
- |
1~10000 |
512 |
zset-max-ziplist-entries |
当有序集合中记录数少于参数值,使用ziplist编码格式,节约内存。 |
- |
1~10000 |
128 |
zset-max-ziplist-value |
当有序集合中各字段长度的最大值小于参数值时,使用ziplist编码格式,节约内存。 |
- |
1~10000 |
64 |
latency-monitor-threshold |
延时监控的采样时间阈值(最小值)。 当阈值设置为0时,不做监控,也不采样;当阈值设置为大于0时,将监控并记录执行耗时大于阈值的操作。 您可以通过LATENCY等命令获取统计数据和配置、执行采样监控。
说明:
latency-monitor-threshold参数一般在定位问题时使用。采集完latency信息,定位问题后,建议重新将latency-monitor-threshold设置为0,以免引起不必要的延迟。 |
Proxy集群实例不支持该参数。 |
0~86400000 单位:毫秒 |
0 |
notify-keyspace-events |
键空间通知,配置该参数后客户端可以通过Redis的订阅与发布功能,来接收那些以某种方式改动了Redis数据集的事件。该参数配置为空时,功能关闭。当参数不是空字符串时,功能开启。 |
Proxy集群实例不支持该参数。 |
可配置为以下字符的任意组合,指定了服务器该发送哪些类型的通知: 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"表示发送所有类型的通知。 |
Ex |
slowlog-log-slower-than |
Redis慢查询会记录超过指定执行时间的命令。slowlog-log-slower-than用于配置记录到redis慢查询命令执行时间阈值。 |
- |
0~1,000,000 单位:微秒 |
10,000 |
proxy-slowlog-log-slower-than |
Proxy节点慢查询会记录超过指定执行时间的命令。proxy-slowlog-log-slower-than用于配置记录到proxy节点慢查询命令的执行时间阈值。 |
目前仅“华东-上海二”和“华南-广州”区域的Proxy集群和读写分离实例支持该参数。 |
30,000~2,000,000 单位:微秒 |
256,000 |
slowlog-max-len |
Redis慢查询记录的条数。注意慢查询记录会消耗额外的内存。可以通过执行SLOWLOG RESET命令清除慢查询记录。 |
- |
0~1,000 |
128 |
proxy-slowlog-max-len |
Proxy节点慢查询记录的条数。注意慢查询记录会消耗额外的内存。可以通过执行SLOWLOG RESET命令清除慢查询记录。 |
目前仅“华东-上海二”和“华南-广州”区域的Proxy集群和读写分离实例支持该参数。 |
0~1,000 |
128 |
auto-kill-timeout-lua-process |
开启该参数时,执行超时的lua脚本进程会被自动kill。如果lua脚本执行了写操作无法kill,并且实例开启了持久化时,则该lua脚本所在的节点会自动重启,lua脚本执行的写操作将不被保存。 |
单机实例和Redis 3.0实例不支持该参数。 |
|
no |
audit-log-customer-command-list |
审计日志需要额外记录的命令。审计日志默认只记录写命令,该参数可以指定用户额外需要记录的命令。只有在开启了审计日志的情况下才有效。 |
审计日志目前为白名单特性,只有开启了审计日志白名单的用户,并且仅当实例类型为Proxy集群实例时,才显示该参数。 |
该参数配置的值必须由英文字母或与.-_组成的命令,且必须以英文字母开头和结尾,每个命令最大长度为10,最多支持配置10个命令。命令之间用空格隔开, 配置的内容最后必须以空格结尾。 |
- |
dispatch-pubsub-to-fixed-shard |
该参数用于指定发布订阅的channel是否集中在0号槽位对应的分片上。开启开关时,发布订阅的处理逻辑与单机版一致。用户轻度使用发布订阅时,推荐开启开关。用户重度使用发布订阅功能时,请使用默认配置,让订阅分担到全部分片中。 |
仅Proxy集群实例支持该参数。 |
|
no |
readonly-lua-route-to-slave-enabled |
是否把只读账号的只读lua路由到从节点,如果开启,只读账号的只读lua可以执行,且会路由到从节点。 |
仅读写分离实例支持该参数。 |
|
no |
cluster-sentinel-enabled |
实例兼容哨兵(Sentinel)模式。 |
仅Proxy集群实例支持该参数。 |
|
no |
scan-support-wr-split |
该参数关闭时,scan命令在master节点执行,该参数开启后,scan命令将在slave节点执行。 |
仅Proxy集群实例支持该参数。 如果历史创建的Proxy集群实例不支持该参数,请联系技术支持升级实例版本。 |
|
no |
参数名 |
参数解释 |
取值范围 |
默认值 |
---|---|---|---|
timeout |
客户端与服务端连接空闲超时断开时间,参数设为0表示连接永不断开。 |
0~7200 单位:秒 |
0 |
maxclients |
最大同时连接的客户端个数。 |
1,000~10,000 |
10,000 |
maxmemory-policy |
内存使用达到上限时对缓存数据管理策略。 |
|
noeviction |
reserved-memory-percent |
预留给后台进程用于持久化、主从同步等内部处理的内存百分比(相对于最大可用内存的百分比)。 |
0-80 |
30 |