news 2026/5/17 6:37:26

Redis 性能调优(二)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Redis 性能调优(二)

Redis 性能调优是一个系统工程,涉及多个层面。以下是全面的调优指南,分为关键方向、具体措施和实战建议:

🔧 核心配置优化

1.内存优化

# 配置建议 maxmemory 16gb # 根据物理内存的70-80%设置 maxmemory-policy allkeys-lru # 根据业务选择策略 # volatile-lru / allkeys-lfu / volatile-ttl

策略选择

  • 缓存场景:allkeys-lruvolatile-lru

  • 混合使用:allkeys-lfu(访问频率模式)

  • 有TTL需求:volatile-ttl

2.持久化调优

# RDB优化 save 900 1 # 根据业务容忍度调整 save 300 10 save 60 10000 rdbcompression yes rdbchecksum yes # AOF优化 appendfsync everysec # 平衡选择 # appendfsync always # 最强持久化,性能低 # appendfsync no # 交由系统,风险高 auto-aof-rewrite-percentage 100 auto-aof-rewrite-min-size 64mb aof-rewrite-incremental-fsync yes

⚡ 高性能关键配置

3.网络与连接

# 连接数优化 maxclients 10000 tcp-keepalive 300 timeout 0 # 生产环境建议设置超时 # 网络缓冲区 client-output-buffer-limit normal 0 0 0 client-output-buffer-limit slave 256mb 64mb 60 client-output-buffer-limit pubsub 32mb 8mb 60

4.内核参数调优(Linux)

# 系统层面 echo never > /sys/kernel/mm/transparent_hugepage/enabled echo 1 > /proc/sys/vm/overcommit_memory sysctl -w net.core.somaxconn=65535 sysctl -w vm.swappiness=1

🎯 数据结构与使用优化

5.数据结构选择

# 字符串 vs Hash # 小对象使用Hash存储更节省内存 HMSET user:1000 name "John" age 30 # 列表 vs Stream # 消息队列优先使用Stream XADD mystream * field1 value1 # 集合运算 # 大数据集考虑使用SCAN替代SMEMBERS

6.Pipeline批量操作

# Python示例 pipe = redis_client.pipeline() for i in range(1000): pipe.set(f'key:{i}', f'value:{i}') pipe.execute() # 单次网络往返

7.Lua脚本优化

-- 减少网络往返,保证原子性 local key = KEYS[1] local limit = tonumber(ARGV[1]) local current = redis.call('GET', key) if current and tonumber(current) > limit then return 0 end redis.call('INCR', key) return 1

📊 监控与诊断

8.关键指标监控

# 使用redis-cli监控 redis-cli --stat # 实时统计 redis-cli --bigkeys # 大key分析 redis-cli --memkeys # 内存分析 redis-cli --latency-history # 延迟监控 # INFO命令关键部分 redis-cli info memory redis-cli info stats redis-cli info commandstats

9.慢查询分析

# 配置慢日志 config set slowlog-log-slower-than 10000 # 10ms config set slowlog-max-len 1000 # 查看慢查询 slowlog get 10

🚀 高级优化技巧

10.集群优化

# 数据分片 # 使用Cluster模式,避免热点Key集中 # 设置合理的slot分布 # 读写分离 # 从节点处理读请求 # 配置:replica-read-only yes

11.客户端优化

// 连接池配置示例(Java) JedisPoolConfig config = new JedisPoolConfig(); config.setMaxTotal(200); // 最大连接数 config.setMaxIdle(50); // 最大空闲 config.setMinIdle(10); // 最小空闲 config.setMaxWaitMillis(1000); // 等待超时 config.setTestOnBorrow(true); // 借用测试

🎪 实战调优清单

快速排错流程:

  1. 检查延迟redis-cli --latency

  2. 内存分析info memory+memory doctor

  3. 大Key扫描redis-cli --bigkeys

  4. 热点Keyredis-cli --hotkeys或监控commandstats

  5. 连接数info clients+client list

常见问题解决:

  • 高延迟:检查持久化、大Key、内存交换

  • 内存不足:优化数据结构、启用压缩、增加内存

  • 连接泄露:检查客户端连接池配置

  • CPU过高:检查慢查询、优化Lua脚本

🔍 工具推荐

  1. redis-benchmark​ - 基准测试

  2. redis-rdb-tools​ - RDB分析

  3. redis-stat​ - 实时监控

  4. RedisInsight​ - 图形化管理

⚠️ 注意事项

  • 生产环境先测试后变更

  • 监控先行,优化在后

  • 根据业务特性调整参数

  • 定期进行容量规划

性能调优是持续性的工作,需要结合具体业务场景、数据特征和硬件资源进行针对性优化。建议建立完整的监控体系,在数据驱动下进行调优决策。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/15 9:48:54

滑窗+hash|pii dfs

lc2423 // try -- every char 一个变量控制不明白 那就再加一个变量&#x1f913;&#x1f446;&#x1f3fb; cnt; // restore class Solution { public: bool equalFrequency(string word) { unordered_map<char,int> hash; for(auto& c:word) hash[c]; // try -…

作者头像 李华
网站建设 2026/5/16 11:31:00

AI核心知识56——大语言模型之ToT(简洁且通俗易懂版)

Tree of Thoughts (ToT / 思维树) 是提示工程&#xff08;Prompt Engineering&#xff09;中一种高级且强悍的推理框架。如果说 Chain of Thought (CoT / 思维链) 是让 AI “一条路走到黑” 地线性思考&#xff0c;那么 ToT 就是让 AI 学会像人类大师一样“深思熟虑、多步推演、…

作者头像 李华
网站建设 2026/5/12 16:21:19

35岁大龄程序员突破中年危机魔咒:职业转型与个人成长的实用指南!

“中年危机”对于我们当代人来说&#xff0c;是令我们每个人都惶恐不安的四个字&#xff0c;但我们又不得不面对它。对于我们程序员来说尤为明显&#xff0c;就像一个魔咒一样挥之不去。 一、中年危机魔咒 IT行业一直是内卷严重的行业&#xff0c;度过中年危机对我们大多数程…

作者头像 李华
网站建设 2026/5/16 22:40:44

《金赐:大航海的肮脏秘密》

《金赐&#xff1a;大航海的肮脏秘密》 第一章&#xff1a;被诅咒的货仓 1502年&#xff0c;里斯本&#xff0c;贝伦塔下的阴影里。 费尔南多德索萨是个赌徒。他赌输了祖产&#xff0c;赌输了爵位&#xff0c;现在他要把最后一条命押在“圣安东尼奥号”上。这艘载重200吨的卡拉…

作者头像 李华
网站建设 2026/5/16 19:08:09

量子 Agent 如何实现毫秒级优化?:深入解析5大核心算法突破

第一章&#xff1a;量子 Agent 的毫秒级优化挑战在当前高并发、低延迟的分布式系统中&#xff0c;量子 Agent 面临着前所未有的性能压力。其核心任务是在毫秒级响应时间内完成复杂的状态评估与策略推导&#xff0c;这对底层计算架构和算法效率提出了极致要求。实时性瓶颈的根源…

作者头像 李华
网站建设 2026/5/15 4:39:57

12.18 中后台项目-权限管理

![[1280X1280 (46).PNG]] ![[1280X1280 (48).PNG]] ![[1280X1280 (50).PNG]] 权限管理总结 ![[download_image.jpeg]] 模拟路由信息数据 adminRouter.json [{"path": "/dashboard","component": "/layout/index.vue","title"…

作者头像 李华