上一篇
场景引入:凌晨3点,电商大促流量暴涨,你的Redis突然响应延迟飙升到2秒,后台报警响成一片... 这时候才想起没优化配置?😱 别慌!今天我们就拆解那些能让Redis性能飞起的关键参数,让你像老司机一样游刃有余!
maxmemory
:内存天花板🚀# 建议设置为物理内存的70%-80%(留空间给系统和持久化) maxmemory 16gb maxmemory-policy allkeys-lru # 内存满时淘汰策略
💡 避坑指南:
maxmemory 0
(无限内存),OOM教你做人! allkeys-lru
,冷热数据分明用volatile-lru
timeout
:连接池管理🛠️timeout 300 # 客户端闲置300秒后断开(防僵尸连接) tcp-keepalive 60 # 心跳检测间隔(防网络闪断)
save 900 1 # 900秒内1次修改则触发 save 300 10 # 300秒内10次修改则触发 stop-writes-on-bgsave-error yes # 备份失败时拒绝写入(宁可停服不丢数据)
appendonly yes appendfsync everysec # 折中方案(性能+安全) auto-aof-rewrite-percentage 100 # AOF文件增长100%时重写
🚨 血泪教训:
appendfsync always
会拖垮性能(除非金融级需求) aof-use-rdb-preamble yes
能大幅缩小AOF体积 tcp-backlog 511 # 高并发时调大(需同步调整系统somaxconn) client-output-buffer-limit normal 0 0 0 # 普通客户端不限流(慎用!)
io-threads 4 # 通常设为CPU核数-1 io-threads-do-reads yes # 启用读线程(写仍单线程)
实测对比:8核机器开启多线程后,QPS提升3倍!🎉
redis-cli --latency # 查看基准延迟 INFO memory # 分析内存碎片率(mem_fragmentation_ratio>1.5需警惕)
# 模拟10万请求,100并发连接 redis-benchmark -n 100000 -c 100 -t get,set
📝 8核32GB内存生产环境推荐:
# 基础核心 maxmemory 24gb maxmemory-policy volatile-lru timeout 60 # 持久化 appendonly yes appendfsync everysec aof-rewrite-incremental-fsync yes # 高并发优化 io-threads 7 tcp-backlog 1024 repl-backlog-size 256mb # 主从同步缓冲区
最后彩蛋🥚:遇到CLIENT PAUSE
超时?可能是内核参数vm.overcommit_memory
没设为1!用这个命令立即生效:
echo 1 > /proc/sys/vm/overcommit_memory
没有万能配置,只有最适合业务的配置!建议先用测试环境暴力压测,再灰度上线~ 🚀
本文由 东灵萱 于2025-08-01发表在【云服务器提供商】,文中图片由(东灵萱)上传,本平台仅提供信息存储服务;作者观点、意见不代表本站立场,如有侵权,请联系我们删除;若有图片侵权,请您准备原始证明材料和公证书后联系我方删除!
本文链接:https://vps.7tqx.com/wenda/504121.html
发表评论