Redis配置文件中哪些参数影响性能
导读:影响 Redis 性能的配置项清单 一 内存与淘汰策略 maxmemory:设置实例可用的最大内存。生产常设为物理内存的70%–80%;若开启AOF,建议额外预留约20%给 AOF 重写,避免内存紧张导致频繁淘汰或阻塞。未设置或过大可能触...
影响 Redis 性能的配置项清单
一 内存与淘汰策略
- maxmemory:设置实例可用的最大内存。生产常设为物理内存的70%–80%;若开启AOF,建议额外预留约20%给 AOF 重写,避免内存紧张导致频繁淘汰或阻塞。未设置或过大可能触发系统swap,性能急剧下降。
- maxmemory-policy:内存触顶后的淘汰策略。缓存类优先用allkeys-lru;仅对有过期时间的键可用volatile-lru/volatile-ttl;数据不可丢用noeviction(写入将被拒绝)。
- maxmemory-samples:LRU/LFU 采样数,默认5。增大可提升淘汰决策质量,但会增加 CPU 开销。
- 内存碎片与编码:关注 mem_fragmentation_ratio(一般希望接近1.0–1.5);合理设置小对象的紧凑编码阈值(如 hash-max-ziplist-entries / hash-max-listpack-entries、zset-max-listpack-entries、set-max-intset-entries),在内存与 CPU 之间取平衡。
二 持久化 RDB 与 AOF
- RDB(快照):由 save 规则或手动 BGSAVE 触发;快照由子进程完成,采用写时复制(COW),主进程仍可处理请求,但大数据集快照会占用额外内存与 I/O。可通过关闭或减少 save 频率、在从库执行备份降低主库影响;权衡 rdbcompression(省空间、增 CPU)、rdbchecksum(校验开销)。
- AOF(追加日志):通过 appendfsync 控制刷盘策略——always(最安全、性能最低)、everysec(推荐,最多丢1秒)、no(性能最好、风险最高)。开启 auto-aof-rewrite-percentage / auto-aof-rewrite-min-size 可定期重写压缩 AOF;重写期间可启用 no-appendfsync-on-rewrite yes 减少 fsync 与重写 I/O 竞争。
- 混合持久化:启用 aof-use-rdb-preamble yes,重写时以 RDB 头 + AOF 增量存储,兼顾恢复速度与数据安全。
三 网络与连接
- tcp-backlog:已完成三次握手的连接队列长度,默认511。高并发入口建议提升到1024或更高,并同步调大系统内核 net.core.somaxconn 与 net.ipv4.tcp_max_syn_backlog,减少“connection refused”。
- tcp-keepalive:保活探测间隔(秒),默认300。缩短至60可更快清理失效连接,减少 TIME_WAIT 与连接资源占用。
- timeout:客户端空闲超时(秒),0 表示不超时。过长会占用连接资源,过短会增加握手与鉴权开销。
- maxclients:最大客户端连接数。结合业务并发与内存预算设置,避免超过系统文件描述符限制。
- client-output-buffer-limit:限制各类客户端输出缓冲,防止慢客户端拖垮实例。示例:普通客户端不限制;从库复制客户端 256mb 64mb 60;发布订阅客户端 32mb 8mb 60(单位分别为硬限/软限/超时秒)。
四 线程模型与后台任务
- io-threads / io-threads-do-reads(Redis 6.0+):开启 I/O 多线程可提升高并发下的网络读写吞吐。线程数常设为 CPU 核心数的1/2–1,并非越多越好。
- bio 线程优先级(Linux):如 bio_thread_priority 10,提升 AOF fsync、RDB 保存等后台任务的调度优先级,降低与前端请求的 I/O 争用。
五 诊断与可观测性相关参数
- slowlog-log-slower-than / slowlog-max-len:记录执行时间超过阈值的命令并限制条数,用于定位慢查询与热点键访问模式。
- 监控指标:关注 keyspace_hits / keyspace_misses(命中率)、evicted_keys(淘汰数)、used_memory / mem_fragmentation_ratio(内存与碎片)、以及 latency 延迟,结合阈值(如命中率**> 10**、平均响应**< 1ms**)做持续优化。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Redis配置文件中哪些参数影响性能
本文地址: https://pptw.com/jishu/773270.html
