分布式缓存Redis缓存实例创建后,支持在控制台修改实例配置参数。修改Redis实例的配置参数可以对Redis的行为和性能进行调优和优化,以满足特定的需求。
前提条件
只有当分布式缓存Redis缓存实例处于“运行中”状态,才能执行此操作。
操作步骤
- 登录 Redis管理控制台。
- 在管理控制台左上角选择实例所在的区域。
- 在实例列表页,单击目标实例名称进入实例详情管理。
- 左侧菜单点击实例配置->参数配置,打开参数配置界面,修改参数后点击保存按钮,即可生效。
注意修改以上默认实例配置会修改整个集群的实例配置,一般情况下,按照系统默认值设置参数即可,不建议修改。如您希望了解Redis更详细的参数说明,可参考Redis官方文档。
参数说明
参数名称 取值范围 说明 appendfsync no,always,everysec 操作系统的fsync函数刷新缓冲区数据到磁盘。
Redis支持三种不同的调用fsync的方式:
no:不调用fsync,由操作系统决定何时刷新数据到磁盘,性能最高。
always:每次写AOF文件都调用fsync,性能最差,但数据最安全。
everysec:每秒调用一次fsync。兼具数据安全和性能。appendonly yes,no 指定是否在每次更新操作后进行日志记录(即持久化功能),Redis在默认情况下是异步的把数据写入磁盘,如果不开启,可能会在断电时导致一段时间内的数据丢失。
有以下取值供选择:
yes: 开启。
no: 关闭。hash-max-ziplist-entries 1~10000 当hash表中只有少量记录时,使用有利于节约内存的的数据结构来对hashes进行编码。 hash-max-ziplist-value 1~10000 当hash表中最大的取值不超过预设阈值时,使用有利于节约内存的的数据结构来对hashes进行编码。 latency-monitor-threshold 0~86400000 延时监控的采样时间阀值(最小值),单位为毫秒。
阀值设置为0:不做监控,也不采样;
阀值设置为大于0:将记录执行耗时大于阀值的操作。
可以通过LATENCY等命令获取统计数据和配置、执行采样监控lua-time-limit 100~60000 Lua脚本的最长执行时间,单位为毫秒。 maxclients 1000~50000 最大同时连接的客户端个数。 maxmemory-policy volatile-lru,allkeys-lru,volatile-lfu,allkeys-lfu,volatile-random,allkeys-random,volatile-ttl,noeviction 在达到内存上限(maxmemory)时实例将如何选择要删除的内容。有8个取值供选择:
volatile-lru:根据LRU算法删除设置了过期时间的键值。
allkeys-lru:根据LRU算法删除任一键值。
volatile-random:删除设置了过期时间的随机键值。
allkeys-random:删除一个随机键值。
volatile-ttl:删除即将过期的键值,即TTL值最小的键值。
noeviction:不删除任何键值,只是返回一个写错误。
volatile-lfu: 根据LFU算法删除设置了过期时间的键值。
allkeys-lfu: 根据LFU算法删除任一键值。proto-max-bulk-len 1048576~536870912 Redis协议中的最大的请求大小,单位为字节。 list-compress-depth 0~65535 列表中两端不被压缩的节点个数,取值范围0~65535。
0:默认值,表示都不压缩。
1~65535:表示list两端各有1~65535个节点不压缩,中间的节点压缩。repl-backlog-size 16384~1073741824 用于增量同步的复制积压缓冲区大小(单位为字节)。这是一个用来在从节点断开连接时,存放从节点数据的缓冲区,当从节点重新连接时,如果丢失的数据少于缓冲区的大小,可以用缓冲区中的数据开始增量同步。 repl-backlog-ttl 0~604800 从节点断开后,主节点释放复制积压缓冲区内存的秒数。值为0时表示永不释放复制积压缓冲区内存。 repl-timeout 30~3600 主从同步超时时间,单位为秒 set-max-intset-entries 1~10000 当一个集合仅包含字符串且字符串为在64位有符号整数范围内的十进制整数时,使用有利于节约内存的的数据结构对集合进行编码。 slowlog-log-slower-than 0~1000000 用于设置Redis慢查询日志的阈值,单位是微秒。 slowlog-max-len 100~10000 慢查询记录的条数。注意慢查询记录会消耗额外的内存。可以通过执行SLOWLOG RESET命令清除慢查询记录。 timeout 0~7200 客户端空闲N秒(timeout参数的取值)后将关闭连接。当N=0时,表示禁用该功能。 zset-max-ziplist-entries 1~10000 有序集合中只有少量记录时,使用有利于节约内存的的数据结构对有序序列进行编码。 zset-max-ziplist-value 1~10000 当有序集合中的最大取值不超过预设阈值时,使用有利于节约内存的的数据结构对有序集合进行编码。 is-open-flashback yes,no 是否开启闪回 is-open-dangercmd-switch yes,no 危险命令开关 hz 1~500 设置Redis后台任务执行频率,例如清除过期键任务。取值范围为1~500,默认值为10,即每秒执行10次。 aof-timestamp-enabled yes,no aof记录时间戳开关 activedefrag yes,no 自动清理内存碎片开关 active-defrag-ignore-bytes 104857600~10737418240 内存碎片占用空间达到设定值的时候开始清理 active-defrag-threshold-lower 10~100 内存碎片率大于设定值的时候开始清理 active-defrag-cycle-min 1~25 内存碎片清理所占用CPU时间的比例不低于设定值(%) active-defrag-cycle-max 1~25 内存碎片清理所占用CPU时间的比例不高于设定值(%) auto-aof-rewrite-min-size 67108864~34359738368 设置自动重写AOF文件的最小值。注,当前运行值随规格变化,可不用关注默认值。