1700 字
约 5 分钟
9
基本性能测试

Redis 性能测试概述

Redis 性能测试是评估系统性能、发现瓶颈、优化配置的重要手段。通过系统性的性能测试,可以了解 Redis 在不同负载下的表现,为生产环境部署提供数据支撑。

性能测试的重要性:容量规划:确定系统能够处理的最大负载性能基线:建立性能基准,监控性能变化瓶颈识别:发现系统性能瓶颈和限制因素配置优化:验证配置调整的效果硬件选型:为硬件选择提供依据

🔧 redis-benchmark 基准测试

redis-benchmark 是 Redis 官方提供的性能测试工具:

# 基本性能测试
redis-benchmark

# 指定测试参数
redis-benchmark -h 127.0.0.1 -p 6379 -c 50 -n 100000

# 参数说明:
# -h: Redis服务器地址
# -p: Redis服务器端口
# -c: 并发连接数
# -n: 总请求数
# -d: 数据大小(字节)
# -t: 测试指定命令
# -P: 管道请求数
# -q: 静默模式,只显示结果
# -l: 循环测试
# --csv: CSV格式输出

# 测试特定命令
redis-benchmark -t set,get -n 100000 -q

# 测试不同数据大小
redis-benchmark -t set,get -n 100000 -d 100
redis-benchmark -t set,get -n 100000 -d 1000
redis-benchmark -t set,get -n 100000 -d 10000

# 管道测试
redis-benchmark -t set,get -n 100000 -P 16

# 持续测试
redis-benchmark -t ping -l

常用测试场景:基础性能:测试基本读写性能并发测试:测试高并发下的性能数据大小:测试不同数据大小的影响管道性能:测试管道技术的效果持久化影响:测试持久化对性能的影响

📊 性能指标解读

理解性能测试结果中的关键指标:

指标 说明 单位 参考值
QPS/TPS 每秒查询/事务数 次/秒 10万+ (单机)
Latency 响应延迟 毫秒 < 1ms (本地)
P99 Latency 99%请求延迟 毫秒 < 5ms
Memory Usage 内存使用率 % < 80%
CPU Usage CPU使用率 % < 70%
Network I/O 网络吞吐量 MB/s 根据网卡
# 示例测试结果解读
====== SET ======
  100000 requests completed in 1.23 seconds
  50 parallel clients
  3 bytes payload
  keep alive: 1

99.99% <= 1 milliseconds
100.00% <= 1 milliseconds
81300.81 requests per second

# 关键信息:
# - 完成时间:1.23秒
# - 并发数:50
# - 数据大小:3字节
# - 99.99%请求在1ms内完成
# - QPS:81,300

🔍 性能监控

实时监控 Redis 性能状态:

# 实时监控命令
redis-cli --stat
redis-cli --stat -i 1

# 查看服务器信息
INFO server
INFO memory
INFO stats
INFO cpu
INFO replication
INFO persistence

# 监控慢查询
SLOWLOG GET 10
SLOWLOG LEN
SLOWLOG RESET

# 配置慢查询阈值(微秒)
CONFIG SET slowlog-log-slower-than 10000
CONFIG SET slowlog-max-len 128

# 监控客户端连接
CLIENT LIST
INFO clients

# 监控内存使用
MEMORY USAGE key
MEMORY STATS
INFO memory

# 监控键空间
INFO keyspace
DBSIZE

监控建议:建议设置合适的慢查询阈值,定期检查慢查询日志,及时发现性能问题。

🚀 压力测试

模拟高负载场景进行压力测试:

# 高并发测试
redis-benchmark -h 127.0.0.1 -p 6379 -c 1000 -n 1000000 -t set,get

# 大数据量测试
redis-benchmark -h 127.0.0.1 -p 6379 -c 100 -n 100000 -d 10240

# 混合命令测试
redis-benchmark -h 127.0.0.1 -p 6379 -c 50 -n 100000 -t set,get,incr,lpush,rpush,lpop,rpop,sadd,hset,spop,lrange,mset

# 管道压力测试
redis-benchmark -h 127.0.0.1 -p 6379 -c 50 -n 100000 -P 100

# 持续压力测试
redis-benchmark -h 127.0.0.1 -p 6379 -c 50 -t set,get -l

# 自定义脚本压力测试
redis-benchmark -h 127.0.0.1 -p 6379 -c 50 -n 100000 -P 16 --eval script.lua

压力测试关注点:

  • 系统稳定性:长时间高负载下的稳定性
  • 性能衰减:负载增加时的性能变化
  • 资源消耗:CPU、内存、网络使用情况
  • 错误率:高负载下的错误发生率
  • 恢复能力:负载降低后的恢复速度

📈 性能分析工具

使用专业工具进行深入的性能分析:

# 1. Redis 内置工具
# 延迟监控
redis-cli --latency
redis-cli --latency-history
redis-cli --latency-dist

# 内存分析
redis-cli --memkeys
redis-cli --bigkeys
redis-cli --hotkeys

# 2. 系统监控工具
# top/htop - CPU和内存监控
top -p $(pgrep redis-server)

# iostat - I/O监控
iostat -x 1

# netstat - 网络连接监控
netstat -an | grep :6379

# 3. 专业监控工具
# Redis Insight - 官方GUI工具
# Grafana + Prometheus - 监控仪表板
# Redis Exporter - Prometheus导出器

# 4. 自定义监控脚本
#!/bin/bash
while true; do
    echo "$(date): $(redis-cli info stats | grep instantaneous_ops_per_sec)"
    sleep 1
done

⚙️ 性能优化建议

基于测试结果进行性能优化:

配置优化:内存配置:设置合适的 maxmemory 和淘汰策略持久化配置:根据需求调整 RDB 和 AOF 参数网络配置:调整 TCP backlog 和超时设置客户端配置:优化连接池和超时参数

# 性能优化配置示例
# redis.conf

# 内存优化
maxmemory 2gb
maxmemory-policy allkeys-lru

# 网络优化
tcp-backlog 511
timeout 0
tcp-keepalive 300

# 持久化优化
save 900 1
save 300 10
save 60 10000
stop-writes-on-bgsave-error no

# AOF优化
appendonly yes
appendfsync everysec
no-appendfsync-on-rewrite yes
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb

# 客户端优化
maxclients 10000

# 慢查询优化
slowlog-log-slower-than 10000
slowlog-max-len 128

应用层优化:使用连接池减少连接开销合理使用管道技术避免大key和热key问题选择合适的数据结构实施缓存预热策略

📋 性能测试最佳实践

制定科学的性能测试策略:

测试准备:环境准备:使用与生产环境相似的硬件配置数据准备:准备真实的测试数据基线建立:建立性能基线和目标工具选择:选择合适的测试工具

测试注意事项:测试环境应尽可能接近生产环境多次测试取平均值,避免偶然因素监控系统资源使用情况记录测试配置和结果分析性能瓶颈和优化点

# 性能测试报告模板

## 测试环境
- Redis版本:6.2.6
- 服务器配置:8核16GB
- 网络环境:千兆网络
- 操作系统:Ubuntu 20.04

## 测试配置
- 并发数:50
- 请求数:100,000
- 数据大小:100字节
- 测试命令:SET, GET

## 测试结果
- SET QPS:85,000
- GET QPS:95,000
- 平均延迟:0.5ms
- P99延迟:2.1ms
- CPU使用率:45%
- 内存使用率:60%

## 优化建议
1. 调整连接池大小
2. 启用管道技术
3. 优化数据结构选择
基本性能测试
https://clxhxhhr.top/posts/2829/
作者
clxstart
发布于
2026-09-19
许可协议
CC BY-NC-SA 4.0
评论
0 条
还没有评论,先写一条吧。
☰ 文章目录