欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 房产 > 建筑 > Redis 性能到底有多快?redis-benchmark

Redis 性能到底有多快?redis-benchmark

2025/6/20 19:14:43 来源:https://blog.csdn.net/weixin_43114209/article/details/148759645  浏览:    关键词:Redis 性能到底有多快?redis-benchmark

一、redis-benchmark 速览

redis-benchmark -h <host> -p <port> -n <requests> -c <clients> -P <pipeline>
参数说明常用值
-h / -p目标 Redis 地址默认 127.0.0.1:6379
-c并发连接数50-500
-n总请求数1e4~1e6
-PPipeline 大小1 / 16 / 64
-dValue 字节数3 / 256 / 4096
-rKeySpace 长度随机键压测必配
-t指定命令集合set,get,lpush,...
--threads线程数≥ CPU*2(压测端)

最小化场景:

redis-benchmark -q -n 100000

二、场景化压测示例

场景命令行解释
1. 指定命令-t set,lpush -n 1e5 -q只测写入
2. 大键空间-t set -r 100000 -n 1e6更贴近缓存场景
3. Pipeline-t set,get -P 16 -n 1e6 -q测吞吐极限
4. Cluster--cluster -c 1000 -n 1e6模拟多分片
5. ACL 认证--user bench -a secret6.0+

三、Pipeline:吞吐倍增器

不加 -P → 一次只发 1 条命令,往返延迟 (RTT) 成瓶颈。
加 -P 16 → 每个连接批量 16 条,CPU 与带宽成为主要限制。

示例:MacBook Air M1,单机 localhost

# -P 1
SET: 180k req/s
# -P 16
SET: 1.5M req/s

四、随机键空间与命中率模拟

  • -r 100000 + key 模板 __rand_int__
  • 默认基准只打一个键,易形成 缓存命中 100% 的「假快」。
  • 随机键能模拟 miss 及 page fault,对 LRU/LFU 策略更真实。
redis-benchmark -t set,get \-r 1000000 -n 2000000 \--csv

五、常见误区 & 踩坑

❌ 误区正确做法
只跑默认基准 ← 单键+无 pipeline根据业务设置 -r / -P / -d
用 单线程脚本 自测保证压测端不是瓶颈:多线程 / 多进程
拿 redis-benchmark 与其他 DB 对比统一并发、批量、协议确认—苹果对苹果
服务端开 VM、客端裸机对比网络、虚拟化差异易误导结果
忽视 AOF / RDB 对性能的影响真正场景要开相同持久化配置

六、影响 Redis 性能的 7 大因子

  1. 网络:带宽 × RTT;本机可用 Unix Socket 提升 50%。
  2. CPU 单核性能:Redis 主线程吃单核;高频 Intel/AMD 首选。
  3. NUMA 亲和:跨 CPU Socket 时波动大,尽量绑核 (taskset/numactl)。
  4. 客户端连接数:30k 连接吞吐或腰斩;合理连接池 + pipeline。
  5. 磁盘 & 持久化AOF always / RDB BGSAVE 都会引发 fork + I/O 峰值。
  6. 内存分配器:jemalloc vs glibc malloc;生产使用 jemalloc 更稳。
  7. 虚拟化:同硬件 VM 性能 < 裸机,关注 over-provision / EBS 延迟。

七、官方硬件基准摘要

数据类型Redis 2.6 → 7.0 性能曲线结论
String持续增长,7.0 提升 ~1.5×指令优化 + I/O pipeline
Hash2.8 起稳中有升Ziplist→ListPack 压缩结构
Set5.x 后提升明显添加 HyperLogLog、优化 SPOP
ZSet多次重写跳表核心6.x 起 p50 延迟显著降低

测试条件:单机裸金属、50 并发、5M 请求、256B Value,无 pipeline。
详细曲线参考官方文档 Benchmark 部分。

八、进阶工具推荐

工具适用场景
memtier_benchmark支持 Redis/Memcached,SSL、多线程,多分布模型
rpc-perf (Twitter)RPC/Redis/Memcached 混合压测
YCSB多数据库统一基准,含 Redis 插件

九、Checklist:压测前后自检

  1. flushall 清库,保证基线一致
  2. ping/ifstat 看延迟 & 带宽
  3. 关闭 CPU 省电 / 睿频,固定高性能模式
  4. 持久化策略与生产一致 (appendfsync)
  5. 监控 INFO stats + 系统 vmstat/iostat
  6. 腰斩 / 抖动 → 检查 client 阻塞 / GC / fork
  7. 保存 版本、参数、硬件 元数据,结果可复现

十、让基准测试真正为业务负责

  • redis-benchmark ≠ 极限性能,只能说明「在该参数下,这台机器、这份配置可跑这么多」。
  • 业务真实负载 才是最终指标:键大小分布、读写比、Pipeline 长度、连接池模型。
  • 基准 → 压测 → 监控 → 调优,形成闭环,Redis 性能才可落地可持续。

祝各位在性能路上,再也不踩「测得快,用得慢」的大坑!🚀

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com