⚡Redis 性能调优实战
引言 🚀
大家好,我是老曹!今天我们来聊聊 Redis 的性能调优实战。Redis 作为高性能的内存数据库,虽然默认配置已经很优秀,但在实际生产环境中,我们往往需要根据业务场景进行深度调优。这节课我们将从系统瓶颈分析、CPU/内存/网络调优、benchmark 工具使用等方面入手,帮你全面提升 Redis 的性能表现!
学习目标 🎯
- 🔍 识别系统瓶颈:掌握性能问题的定位方法
- ⚙️ CPU/内存/网络调优:学会针对性优化各项资源
- 🧪 benchmark 工具使用:熟练使用压测工具评估性能
- 🧠 实战调优案例:通过真实场景掌握调优技巧
1. 系统瓶颈分析 🔍
1.1 性能瓶颈分类 🧩
Redis 的性能瓶颈通常分为以下几类:
| CPU 瓶颈 | CPU 使用率过高 | 持久化、Lua 脚本、大 Key 操作 |
| 内存瓶颈 | 内存占用过高 | 数据量过大、内存碎片、缓存失效 |
| 网络瓶颈 | 网络延迟高 | 客户端连接数多、带宽不足 |
| 磁盘瓶颈 | IO 等待时间长 | RDB/AOF 持久化、Swap 使用 |
1.2 性能监控指标 📊
关键监控指标如下:
| used_memory | 已使用内存 | < maxmemory |
| instantaneous_ops_per_sec | 每秒操作数 | 视业务而定 |
| connected_clients | 连接客户端数 | < 10000 |
| rejected_connections | 拒绝连接数 | = 0 |
| evicted_keys | 淘汰键数量 | = 0 |
1.3 思维导图 🧠
#mermaid-svg-A2WAvbTa8mrvPNWT{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-A2WAvbTa8mrvPNWT .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-A2WAvbTa8mrvPNWT .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-A2WAvbTa8mrvPNWT .error-icon{fill:#552222;}#mermaid-svg-A2WAvbTa8mrvPNWT .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-A2WAvbTa8mrvPNWT .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-A2WAvbTa8mrvPNWT .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-A2WAvbTa8mrvPNWT .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-A2WAvbTa8mrvPNWT .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-A2WAvbTa8mrvPNWT .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-A2WAvbTa8mrvPNWT .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-A2WAvbTa8mrvPNWT .marker{fill:#333333;stroke:#333333;}#mermaid-svg-A2WAvbTa8mrvPNWT .marker.cross{stroke:#333333;}#mermaid-svg-A2WAvbTa8mrvPNWT svg{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-A2WAvbTa8mrvPNWT p{margin:0;}#mermaid-svg-A2WAvbTa8mrvPNWT .edge{stroke-width:3;}#mermaid-svg-A2WAvbTa8mrvPNWT .section–1 rect,#mermaid-svg-A2WAvbTa8mrvPNWT .section–1 path,#mermaid-svg-A2WAvbTa8mrvPNWT .section–1 circle,#mermaid-svg-A2WAvbTa8mrvPNWT .section–1 polygon,#mermaid-svg-A2WAvbTa8mrvPNWT .section–1 path{fill:hsl(240, 100%, 76.2745098039%);}#mermaid-svg-A2WAvbTa8mrvPNWT .section–1 text{fill:#ffffff;}#mermaid-svg-A2WAvbTa8mrvPNWT .node-icon–1{font-size:40px;color:#ffffff;}#mermaid-svg-A2WAvbTa8mrvPNWT .section-edge–1{stroke:hsl(240, 100%, 76.2745098039%);}#mermaid-svg-A2WAvbTa8mrvPNWT .edge-depth–1{stroke-width:17;}#mermaid-svg-A2WAvbTa8mrvPNWT .section–1 line{stroke:hsl(60, 100%, 86.2745098039%);stroke-width:3;}#mermaid-svg-A2WAvbTa8mrvPNWT .disabled,#mermaid-svg-A2WAvbTa8mrvPNWT .disabled circle,#mermaid-svg-A2WAvbTa8mrvPNWT .disabled text{fill:lightgray;}#mermaid-svg-A2WAvbTa8mrvPNWT .disabled text{fill:#efefef;}#mermaid-svg-A2WAvbTa8mrvPNWT .section-0 rect,#mermaid-svg-A2WAvbTa8mrvPNWT .section-0 path,#mermaid-svg-A2WAvbTa8mrvPNWT .section-0 circle,#mermaid-svg-A2WAvbTa8mrvPNWT .section-0 polygon,#mermaid-svg-A2WAvbTa8mrvPNWT .section-0 path{fill:hsl(60, 100%, 73.5294117647%);}#mermaid-svg-A2WAvbTa8mrvPNWT .section-0 text{fill:black;}#mermaid-svg-A2WAvbTa8mrvPNWT .node-icon-0{font-size:40px;color:black;}#mermaid-svg-A2WAvbTa8mrvPNWT .section-edge-0{stroke:hsl(60, 100%, 73.5294117647%);}#mermaid-svg-A2WAvbTa8mrvPNWT .edge-depth-0{stroke-width:14;}#mermaid-svg-A2WAvbTa8mrvPNWT .section-0 line{stroke:hsl(240, 100%, 83.5294117647%);stroke-width:3;}#mermaid-svg-A2WAvbTa8mrvPNWT .disabled,#mermaid-svg-A2WAvbTa8mrvPNWT .disabled circle,#mermaid-svg-A2WAvbTa8mrvPNWT .disabled text{fill:lightgray;}#mermaid-svg-A2WAvbTa8mrvPNWT .disabled text{fill:#efefef;}#mermaid-svg-A2WAvbTa8mrvPNWT .section-1 rect,#mermaid-svg-A2WAvbTa8mrvPNWT .section-1 path,#mermaid-svg-A2WAvbTa8mrvPNWT .section-1 circle,#mermaid-svg-A2WAvbTa8mrvPNWT .section-1 polygon,#mermaid-svg-A2WAvbTa8mrvPNWT .section-1 path{fill:hsl(80, 100%, 76.2745098039%);}#mermaid-svg-A2WAvbTa8mrvPNWT .section-1 text{fill:black;}#mermaid-svg-A2WAvbTa8mrvPNWT .node-icon-1{font-size:40px;color:black;}#mermaid-svg-A2WAvbTa8mrvPNWT .section-edge-1{stroke:hsl(80, 100%, 76.2745098039%);}#mermaid-svg-A2WAvbTa8mrvPNWT .edge-depth-1{stroke-width:11;}#mermaid-svg-A2WAvbTa8mrvPNWT .section-1 line{stroke:hsl(260, 100%, 86.2745098039%);stroke-width:3;}#mermaid-svg-A2WAvbTa8mrvPNWT .disabled,#mermaid-svg-A2WAvbTa8mrvPNWT .disabled circle,#mermaid-svg-A2WAvbTa8mrvPNWT .disabled text{fill:lightgray;}#mermaid-svg-A2WAvbTa8mrvPNWT .disabled text{fill:#efefef;}#mermaid-svg-A2WAvbTa8mrvPNWT .section-2 rect,#mermaid-svg-A2WAvbTa8mrvPNWT .section-2 path,#mermaid-svg-A2WAvbTa8mrvPNWT .section-2 circle,#mermaid-svg-A2WAvbTa8mrvPNWT .section-2 polygon,#mermaid-svg-A2WAvbTa8mrvPNWT .section-2 path{fill:hsl(270, 100%, 76.2745098039%);}#mermaid-svg-A2WAvbTa8mrvPNWT .section-2 text{fill:#ffffff;}#mermaid-svg-A2WAvbTa8mrvPNWT .node-icon-2{font-size:40px;color:#ffffff;}#mermaid-svg-A2WAvbTa8mrvPNWT .section-edge-2{stroke:hsl(270, 100%, 76.2745098039%);}#mermaid-svg-A2WAvbTa8mrvPNWT .edge-depth-2{stroke-width:8;}#mermaid-svg-A2WAvbTa8mrvPNWT .section-2 line{stroke:hsl(90, 100%, 86.2745098039%);stroke-width:3;}#mermaid-svg-A2WAvbTa8mrvPNWT .disabled,#mermaid-svg-A2WAvbTa8mrvPNWT .disabled circle,#mermaid-svg-A2WAvbTa8mrvPNWT .disabled text{fill:lightgray;}#mermaid-svg-A2WAvbTa8mrvPNWT .disabled text{fill:#efefef;}#mermaid-svg-A2WAvbTa8mrvPNWT .section-3 rect,#mermaid-svg-A2WAvbTa8mrvPNWT .section-3 path,#mermaid-svg-A2WAvbTa8mrvPNWT .section-3 circle,#mermaid-svg-A2WAvbTa8mrvPNWT .section-3 polygon,#mermaid-svg-A2WAvbTa8mrvPNWT .section-3 path{fill:hsl(300, 100%, 76.2745098039%);}#mermaid-svg-A2WAvbTa8mrvPNWT .section-3 text{fill:black;}#mermaid-svg-A2WAvbTa8mrvPNWT .node-icon-3{font-size:40px;color:black;}#mermaid-svg-A2WAvbTa8mrvPNWT .section-edge-3{stroke:hsl(300, 100%, 76.2745098039%);}#mermaid-svg-A2WAvbTa8mrvPNWT .edge-depth-3{stroke-width:5;}#mermaid-svg-A2WAvbTa8mrvPNWT .section-3 line{stroke:hsl(120, 100%, 86.2745098039%);stroke-width:3;}#mermaid-svg-A2WAvbTa8mrvPNWT .disabled,#mermaid-svg-A2WAvbTa8mrvPNWT .disabled circle,#mermaid-svg-A2WAvbTa8mrvPNWT .disabled text{fill:lightgray;}#mermaid-svg-A2WAvbTa8mrvPNWT .disabled text{fill:#efefef;}#mermaid-svg-A2WAvbTa8mrvPNWT .section-4 rect,#mermaid-svg-A2WAvbTa8mrvPNWT .section-4 path,#mermaid-svg-A2WAvbTa8mrvPNWT .section-4 circle,#mermaid-svg-A2WAvbTa8mrvPNWT .section-4 polygon,#mermaid-svg-A2WAvbTa8mrvPNWT .section-4 path{fill:hsl(330, 100%, 76.2745098039%);}#mermaid-svg-A2WAvbTa8mrvPNWT .section-4 text{fill:black;}#mermaid-svg-A2WAvbTa8mrvPNWT .node-icon-4{font-size:40px;color:black;}#mermaid-svg-A2WAvbTa8mrvPNWT .section-edge-4{stroke:hsl(330, 100%, 76.2745098039%);}#mermaid-svg-A2WAvbTa8mrvPNWT .edge-depth-4{stroke-width:2;}#mermaid-svg-A2WAvbTa8mrvPNWT .section-4 line{stroke:hsl(150, 100%, 86.2745098039%);stroke-width:3;}#mermaid-svg-A2WAvbTa8mrvPNWT .disabled,#mermaid-svg-A2WAvbTa8mrvPNWT .disabled circle,#mermaid-svg-A2WAvbTa8mrvPNWT .disabled text{fill:lightgray;}#mermaid-svg-A2WAvbTa8mrvPNWT .disabled text{fill:#efefef;}#mermaid-svg-A2WAvbTa8mrvPNWT .section-5 rect,#mermaid-svg-A2WAvbTa8mrvPNWT .section-5 path,#mermaid-svg-A2WAvbTa8mrvPNWT .section-5 circle,#mermaid-svg-A2WAvbTa8mrvPNWT .section-5 polygon,#mermaid-svg-A2WAvbTa8mrvPNWT .section-5 path{fill:hsl(0, 100%, 76.2745098039%);}#mermaid-svg-A2WAvbTa8mrvPNWT .section-5 text{fill:black;}#mermaid-svg-A2WAvbTa8mrvPNWT .node-icon-5{font-size:40px;color:black;}#mermaid-svg-A2WAvbTa8mrvPNWT .section-edge-5{stroke:hsl(0, 100%, 76.2745098039%);}#mermaid-svg-A2WAvbTa8mrvPNWT .edge-depth-5{stroke-width:-1;}#mermaid-svg-A2WAvbTa8mrvPNWT .section-5 line{stroke:hsl(180, 100%, 86.2745098039%);stroke-width:3;}#mermaid-svg-A2WAvbTa8mrvPNWT .disabled,#mermaid-svg-A2WAvbTa8mrvPNWT .disabled circle,#mermaid-svg-A2WAvbTa8mrvPNWT .disabled text{fill:lightgray;}#mermaid-svg-A2WAvbTa8mrvPNWT .disabled text{fill:#efefef;}#mermaid-svg-A2WAvbTa8mrvPNWT .section-6 rect,#mermaid-svg-A2WAvbTa8mrvPNWT .section-6 path,#mermaid-svg-A2WAvbTa8mrvPNWT .section-6 circle,#mermaid-svg-A2WAvbTa8mrvPNWT .section-6 polygon,#mermaid-svg-A2WAvbTa8mrvPNWT .section-6 path{fill:hsl(30, 100%, 76.2745098039%);}#mermaid-svg-A2WAvbTa8mrvPNWT .section-6 text{fill:black;}#mermaid-svg-A2WAvbTa8mrvPNWT .node-icon-6{font-size:40px;color:black;}#mermaid-svg-A2WAvbTa8mrvPNWT .section-edge-6{stroke:hsl(30, 100%, 76.2745098039%);}#mermaid-svg-A2WAvbTa8mrvPNWT .edge-depth-6{stroke-width:-4;}#mermaid-svg-A2WAvbTa8mrvPNWT .section-6 line{stroke:hsl(210, 100%, 86.2745098039%);stroke-width:3;}#mermaid-svg-A2WAvbTa8mrvPNWT .disabled,#mermaid-svg-A2WAvbTa8mrvPNWT .disabled circle,#mermaid-svg-A2WAvbTa8mrvPNWT .disabled text{fill:lightgray;}#mermaid-svg-A2WAvbTa8mrvPNWT .disabled text{fill:#efefef;}#mermaid-svg-A2WAvbTa8mrvPNWT .section-7 rect,#mermaid-svg-A2WAvbTa8mrvPNWT .section-7 path,#mermaid-svg-A2WAvbTa8mrvPNWT .section-7 circle,#mermaid-svg-A2WAvbTa8mrvPNWT .section-7 polygon,#mermaid-svg-A2WAvbTa8mrvPNWT .section-7 path{fill:hsl(90, 100%, 76.2745098039%);}#mermaid-svg-A2WAvbTa8mrvPNWT .section-7 text{fill:black;}#mermaid-svg-A2WAvbTa8mrvPNWT .node-icon-7{font-size:40px;color:black;}#mermaid-svg-A2WAvbTa8mrvPNWT .section-edge-7{stroke:hsl(90, 100%, 76.2745098039%);}#mermaid-svg-A2WAvbTa8mrvPNWT .edge-depth-7{stroke-width:-7;}#mermaid-svg-A2WAvbTa8mrvPNWT .section-7 line{stroke:hsl(270, 100%, 86.2745098039%);stroke-width:3;}#mermaid-svg-A2WAvbTa8mrvPNWT .disabled,#mermaid-svg-A2WAvbTa8mrvPNWT .disabled circle,#mermaid-svg-A2WAvbTa8mrvPNWT .disabled text{fill:lightgray;}#mermaid-svg-A2WAvbTa8mrvPNWT .disabled text{fill:#efefef;}#mermaid-svg-A2WAvbTa8mrvPNWT .section-8 rect,#mermaid-svg-A2WAvbTa8mrvPNWT .section-8 path,#mermaid-svg-A2WAvbTa8mrvPNWT .section-8 circle,#mermaid-svg-A2WAvbTa8mrvPNWT .section-8 polygon,#mermaid-svg-A2WAvbTa8mrvPNWT .section-8 path{fill:hsl(150, 100%, 76.2745098039%);}#mermaid-svg-A2WAvbTa8mrvPNWT .section-8 text{fill:black;}#mermaid-svg-A2WAvbTa8mrvPNWT .node-icon-8{font-size:40px;color:black;}#mermaid-svg-A2WAvbTa8mrvPNWT .section-edge-8{stroke:hsl(150, 100%, 76.2745098039%);}#mermaid-svg-A2WAvbTa8mrvPNWT .edge-depth-8{stroke-width:-10;}#mermaid-svg-A2WAvbTa8mrvPNWT .section-8 line{stroke:hsl(330, 100%, 86.2745098039%);stroke-width:3;}#mermaid-svg-A2WAvbTa8mrvPNWT .disabled,#mermaid-svg-A2WAvbTa8mrvPNWT .disabled circle,#mermaid-svg-A2WAvbTa8mrvPNWT .disabled text{fill:lightgray;}#mermaid-svg-A2WAvbTa8mrvPNWT .disabled text{fill:#efefef;}#mermaid-svg-A2WAvbTa8mrvPNWT .section-9 rect,#mermaid-svg-A2WAvbTa8mrvPNWT .section-9 path,#mermaid-svg-A2WAvbTa8mrvPNWT .section-9 circle,#mermaid-svg-A2WAvbTa8mrvPNWT .section-9 polygon,#mermaid-svg-A2WAvbTa8mrvPNWT .section-9 path{fill:hsl(180, 100%, 76.2745098039%);}#mermaid-svg-A2WAvbTa8mrvPNWT .section-9 text{fill:black;}#mermaid-svg-A2WAvbTa8mrvPNWT .node-icon-9{font-size:40px;color:black;}#mermaid-svg-A2WAvbTa8mrvPNWT .section-edge-9{stroke:hsl(180, 100%, 76.2745098039%);}#mermaid-svg-A2WAvbTa8mrvPNWT .edge-depth-9{stroke-width:-13;}#mermaid-svg-A2WAvbTa8mrvPNWT .section-9 line{stroke:hsl(0, 100%, 86.2745098039%);stroke-width:3;}#mermaid-svg-A2WAvbTa8mrvPNWT .disabled,#mermaid-svg-A2WAvbTa8mrvPNWT .disabled circle,#mermaid-svg-A2WAvbTa8mrvPNWT .disabled text{fill:lightgray;}#mermaid-svg-A2WAvbTa8mrvPNWT .disabled text{fill:#efefef;}#mermaid-svg-A2WAvbTa8mrvPNWT .section-10 rect,#mermaid-svg-A2WAvbTa8mrvPNWT .section-10 path,#mermaid-svg-A2WAvbTa8mrvPNWT .section-10 circle,#mermaid-svg-A2WAvbTa8mrvPNWT .section-10 polygon,#mermaid-svg-A2WAvbTa8mrvPNWT .section-10 path{fill:hsl(210, 100%, 76.2745098039%);}#mermaid-svg-A2WAvbTa8mrvPNWT .section-10 text{fill:black;}#mermaid-svg-A2WAvbTa8mrvPNWT .node-icon-10{font-size:40px;color:black;}#mermaid-svg-A2WAvbTa8mrvPNWT .section-edge-10{stroke:hsl(210, 100%, 76.2745098039%);}#mermaid-svg-A2WAvbTa8mrvPNWT .edge-depth-10{stroke-width:-16;}#mermaid-svg-A2WAvbTa8mrvPNWT .section-10 line{stroke:hsl(30, 100%, 86.2745098039%);stroke-width:3;}#mermaid-svg-A2WAvbTa8mrvPNWT .disabled,#mermaid-svg-A2WAvbTa8mrvPNWT .disabled circle,#mermaid-svg-A2WAvbTa8mrvPNWT .disabled text{fill:lightgray;}#mermaid-svg-A2WAvbTa8mrvPNWT .disabled text{fill:#efefef;}#mermaid-svg-A2WAvbTa8mrvPNWT .section-root rect,#mermaid-svg-A2WAvbTa8mrvPNWT .section-root path,#mermaid-svg-A2WAvbTa8mrvPNWT .section-root circle,#mermaid-svg-A2WAvbTa8mrvPNWT .section-root polygon{fill:hsl(240, 100%, 46.2745098039%);}#mermaid-svg-A2WAvbTa8mrvPNWT .section-root text{fill:#ffffff;}#mermaid-svg-A2WAvbTa8mrvPNWT .section-root span{color:#ffffff;}#mermaid-svg-A2WAvbTa8mrvPNWT .section-2 span{color:#ffffff;}#mermaid-svg-A2WAvbTa8mrvPNWT .icon-container{height:100%;display:flex;justify-content:center;align-items:center;}#mermaid-svg-A2WAvbTa8mrvPNWT .edge{fill:none;}#mermaid-svg-A2WAvbTa8mrvPNWT .mindmap-node-label{dy:1em;alignment-baseline:middle;text-anchor:middle;dominant-baseline:middle;text-align:center;}#mermaid-svg-A2WAvbTa8mrvPNWT :root{–mermaid-font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}
Redis 性能调优
CPU 瓶颈
持久化优化
Lua 脚本优化
大 Key 拆分
内存瓶颈
内存碎片整理
数据结构优化
淘汰策略配置
网络瓶颈
连接池优化
Pipeline 使用
带宽扩容
磁盘瓶颈
AOF 重写优化
Swap 禁用
SSD 升级
2. CPU 调优实战 ⚙️
2.1 持久化优化 💾
问题:RDB 快照和 AOF 重写会占用大量 CPU 资源。
优化方案:
save 300 10
save 60 10000
2.2 Lua 脚本优化 📜
问题:复杂 Lua 脚本可能导致主线程阻塞。
优化方案:
2.3 大 Key 操作优化 🐘
问题:对大 Key 的操作会阻塞主线程。
优化方案:
3. 内存调优实战 💾
3.1 内存碎片优化 🔧
问题:内存碎片导致可用内存减少。
优化方案:
3.2 数据结构优化 🧠
问题:不合理的数据结构导致内存浪费。
优化方案:
3.3 淘汰策略配置 ⚖️
问题:内存不足时未及时淘汰数据。
优化方案:
4. 网络调优实战 🌐
4.1 连接池优化 🔌
问题:频繁创建/销毁连接消耗资源。
优化方案:
4.2 Pipeline 使用 🚀
问题:多次往返请求增加网络延迟。
优化方案:
4.3 带宽扩容 📈
问题:网络带宽不足导致传输缓慢。
优化方案:
5. benchmark 工具使用 🧪
5.1 redis-benchmark 工具 🛠️
功能:Redis 官方提供的压测工具。
使用示例:
redis-benchmark -h 127.0.0.1 -p 6379 -c 100 -n 100000
参数说明:
- -c:并发连接数
- -n:总请求数
- -t:指定测试命令
5.2 memtier_benchmark 工具 🧪
功能:第三方压测工具,支持更多自定义选项。
使用示例:
memtier_benchmark -s 127.0.0.1 -p 6379 -c 100 -n 100000
5.3 性能测试报告 📊
| QPS | 50000 | ✅ |
| 平均延迟 | 2ms | ✅ |
| 99% 延迟 | 10ms | ❌ |
| 内存占用 | 1.5GB | ✅ |
6. 10 大面试题及答案 🧠
Q1:如何定位 Redis 性能瓶颈?
A:通过 INFO 命令查看各项指标,结合监控工具(如 RedisInsight)分析 CPU、内存、网络、磁盘的使用情况。
Q2:Redis CPU 占用过高怎么办?
A:检查是否有大 Key 操作、频繁持久化或复杂 Lua 脚本,可通过优化数据结构、调整持久化策略或拆分脚本解决。
Q3:如何优化 Redis 内存碎片?
A:使用 MEMORY PURGE 清理碎片,调整 jemalloc 参数,或定期重启实例。
Q4:Pipeline 的作用是什么?
A:Pipeline 可以批量发送命令,减少网络往返次数,显著提升性能。
Q5:如何选择淘汰策略?
A:根据业务场景选择:热点数据用 LRU,冷数据用 LFU,混合场景推荐 LFU。
Q6:Redis 如何避免 Swap 使用?
A:确保物理内存充足,关闭 Swap 功能,并设置合理的 maxmemory。
Q7:benchmark 工具的主要用途是什么?
A:用于模拟高并发场景,测试 Redis 的 QPS、延迟等性能指标。
Q8:大 Key 会带来哪些问题?
A:阻塞主线程、增加内存占用、影响集群分片均衡。
Q9:如何优化 Redis 网络性能?
A:使用连接池、启用 Pipeline、升级网络带宽、部署就近节点。
Q10:Redis 性能调优的核心思路是什么?
A:先监控定位瓶颈,再针对性优化 CPU/内存/网络/磁盘,最后通过压测验证效果。
7. 表格总结 📊
| CPU 调优 | 优化持久化、脚本、大 Key | INFO、SLOWLOG |
| 内存调优 | 整理碎片、优化结构、配置策略 | MEMORY PURGE |
| 网络调优 | 连接池、Pipeline、带宽扩容 | netstat、iftop |
| 压测验证 | 使用 benchmark 工具 | redis-benchmark |
结语 🎉
好了,今天的课程就到这里!希望通过这节课,你能掌握 Redis 性能调优的全套技能,成为真正的性能优化专家!记住,调优是一个持续迭代的过程,需要不断监控、分析和改进。如果你觉得这节课对你有帮助,别忘了点赞收藏哦!我们下节课再见!👋
老曹寄语:性能调优就像修车,光看说明书是不够的,得动手实践才行!💪





