为了确保分布式缓存服务发挥出最优性能,您可以根据自己的业务情况对DCS缓存实例的运行参数进行调整。
例如,需要将实例持久化功能关闭,则需要将“appendonly”修改为“no”。
说明实例配置参数修改之后,参数会立即生效(不需要手动重启实例),如果是集群,会在所有分片生效。
操作步骤
步骤 1 登录分布式缓存服务管理控制台。
步骤 2 在管理控制台左上角单击,选择区域和项目。
步骤 3 单击左侧菜单栏的“缓存管理”。进入缓存管理页面。
步骤 4 在“缓存管理”页面,单击DCS缓存实例的名称。
步骤 5 单击“实例配置 > 参数配置”页签进入配置界面。
步骤 6 单击“修改”。
步骤 7 根据需要修改配置参数。
各参数的详细介绍见下表,一般情况下,按照系统默认值设置参数即可。
Redis缓存实例配置参数说明
参数名 | 参数解释 | 取值范围 | 默认值 |
---|---|---|---|
timeout | 客户端空闲N秒(timeout参数的取值)后将关闭连接。当N=0时,表示禁用该功能。Proxy集群实例不支持该参数。 | 0~7200,单位:秒。 | 0 |
appendfsync | 操作系统的fsync函数刷新缓冲区数据到磁盘,有些操作系统会真正刷新磁盘上的数据,其他一些操作系统只会尝试尽快完成。 Redis支持三种不同的调用 fsync的方式: no:不调用fsync,由操作系统决定何时刷新数据到磁盘,性能最高。 always:每次写AOF文件都调用fsync,性能最差,但数据最安全。 everysec:每秒调用一次fsync。兼具数据安全和性能。单机实例不支持该参数。 |
l nol alwaysl everysec | no |
appendonly | 指定是否在每次更新操作后进行日志记录,Redis在默认情况下是异步的把数据写入磁盘,如果不开启,可能会在断电时导致一段时间内的数据丢失。有2个取值供选择:yes:开启。no:关闭。单机实例不支持该参数。 | l yesl no | yes |
client-output-buffer-limit-slave-soft-seconds | slave客户端output-buffer超过client-output-buffer-slave-soft-limit设置的大小,并且持续时间超过此值(单位为秒),服务端会主动断开连接。单机实例不支持该参数。 | 0~60 | 60 |
client-output-buffer-slave-hard-limit | 对slave客户端output-buffer的硬限制(单位为字节),如果slave客户端output-buffer大于此值,服务端会主动断开连接。单机实例不支持该参数。 | 取值范围与实例的类型及规格有关 | 默认值与实例的类型及规格有关 |
client-output-buffer-slave-soft-limit | 对slave客户端output-buffer的软限制(单位为字节),如果output-buffer大于此值并且持续时间超过client-output-buffer-limit-slave-soft-seconds设置的时长,服务端会主动断开连接。单机实例不支持该参数。 | 取值范围与实例的类型及规格有关 | 默认值与实例的类型及规格有关 |
maxmemory-policy | 在达到内存上限(maxmemory)时DCS将如何选择要删除的内容。 有8个取值供选择: volatile-lru:根据LRU算法删除设置了过期时间的键值。 allkeys-lru:根据LRU算法删除任一键值。 volatile-random:删除设置了过期时间的随机键值。 allkeys-random:删除一个随机键值。 volatile-ttl:删除即将过期的键值,即TTL值最小的键值。 noeviction:不删除任何键值,只是返回一个写错误。 volatile-lfu:根据LFU算法删除设置了过期时间的键值。 allkeys-lfu:根据LFU算法删除任一键值。 |
取值范围与实例的版本有关 | 默认值与实例的版本及类型有关 |
lua-time-limit | Lua脚本的最长执行时间,单位为毫秒。读写分离实例不支持设置该参数。 | 100~5,000 | 5,000 |
master-read-only | 设置实例为只读状态。设置只读后,所有写入命令将返回失败。Proxy集群、读写分离实例不支持该参数。 | l yesl no | no |
maxclients | 最大同时连接的客户端个数。Proxy集群、读写分离实例不支持该参数。 | 取值范围与实例的类型及规格有关 | 默认值与实例的类型及规格有关 |
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表中只有少量记录时,使用有利于节约内存的数据结构来对hashes进行编码。 | 1~10000 | 512 |
hash-max-ziplist-value | 当hash表中最大的取值不超过预设阈值时,使用有利于节约内存的数据结构来对hashes进行编码。 | 1~10000 | 64 |
set-max-intset-entries | 当一个集合仅包含字符串且字符串为在64位有符号整数范围内的十进制整数时,使用有利于节约内存的数据结构对集合进行编码。 | 1~10000 | 512 |
zset-max-ziplist-entries | 当有序集合中只有少量记录时,使用有利于节约内存的数据结构对有序序列进行编码。 | 1~10000 | 128 |
zset-max-ziplist-value | 当有序集合中的最大取值不超过预设阈值时,使用有利于节约内存的数据结构对有序集合进行编码。 | 1~10000 | 64 |
latency-monitor-threshold | 延时监控的采样时间阈值(最小值),单位为毫秒。阈值设置为0:不做监控,也不采样;阈值设置为大于0:将记录执行耗时大于阈值的操作。可以通过LATENCY等命令获取统计数据和配置、执行采样监控。Proxy集群实例不支持该参数。 | 0~86400000,单位:毫秒。 | 0 |
notify-keyspace-events | notify-keyspace-events选项的参数为空字符串时,功能关闭。另一方面,当参数不是空字符串时,功能开启。 notify-keyspace-events的参数可以是以下字符的任意组合,它指定了服务器该发送哪些类型的通知: K:键空间通知,所有通知以__keyspace@__为前缀。 E:键事件通知,所有通知以__keyevent@__为前缀。 g:DEL、EXPIRE、RENAME等类型无关的通用命令的通知。 $ :字符串命令的通知。l:列表命令的通知。 s:集合命令的通知。 h:哈希命令的通知。 z:有序集合命令的通知。 x:过期事件:每当有过期键被删除时发送。 e:驱逐(evict)事件:每当有键因为maxmemory政策而被删除时发送。 A:参数glshzxe的别名。输入的参数中至少有一个K或者E,A不能与g$lshzxe同时出现,不能出现相同字母。举个例子,如果只想订阅键空间中和列表相关的通知,那么参数就应该设为Kl。将参数设为字符串"AKE"表示发送所有类型的通知。 Proxy集群实例不支持该参数。 |
请参考该参数的描述。 | Ex |
slowlog-log-slower-than | Redis慢查询会记录超过指定执行时间的命令。slowlog-log-slower-than用于配置记录到慢查询的命令执行时间阈值,单位为微秒。 | 0~1,000,000 | 10,000 |
slowlog-max-len | 慢查询记录的条数。注意慢查询记录会消耗额外的内存。可以通过执行SLOWLOG RESET命令清除慢查询记录。 | 0~1,000 | 128 |
multi-db | 开启或关闭多DB特性。要求先清除已有数据。清除数据之前请先手动备份生成备份文件。若要恢复已清除的数据请通过数据迁移页面的备份导入功能进行数据恢复。有2个取值供选择:yes:开启。no:关闭。仅Redis 4.0及以上版本的Proxy集群实例支持该参数。 | l yesl no | no |
说明1.上表中的内存优化相关参数可以参考Redis官网说明,链接:https://redis.io/topics/memory-optimization。
2.latency-monitor-threshold参数一般在定位问题时使用。采集完latency信息,定位问题后,建议重新将latency-monitor-threshold设置为0,以免引起不必要的延迟。
3.notify-keyspace-events参数的其他描述:
有效值为[K|E|KE][A|g|l|s|h|z|x|e|$],即输入的参数中至少要有一个K或者E。
A为“g$lshzxe”所有参数的集合别名。A与“g$lshzxe”中任意一个不能同时出现。
例如,如果只想订阅键空间中和列表相关的通知,那么参数就应该设为Kl。若将参数设为字符串"AKE"表示发送所有类型的通知。
4.不同实例类型支持配置的参数和取值可能略有不同,请以控制台显示为准。
步骤 8 单击“保存”。
步骤 9 在弹出的修改确认对话框中,单击“是”,确认修改参数。