惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
大猫的无限游戏
大猫的无限游戏
博客园 - 聂微东
Jina AI
Jina AI
The Cloudflare Blog
V
Visual Studio Blog
博客园_首页
量子位
酷 壳 – CoolShell
酷 壳 – CoolShell
博客园 - 【当耐特】
爱范儿
爱范儿
博客园 - 三生石上(FineUI控件)
小众软件
小众软件
博客园 - 司徒正美
阮一峰的网络日志
阮一峰的网络日志
Last Week in AI
Last Week in AI
V
V2EX
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - 叶小钗
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
WordPress大学
WordPress大学
宝玉的分享
宝玉的分享
T
Tailwind CSS Blog
博客园 - Franky

博客园 - 飘飘雪

Redis 的 Rehash 操作详解 Panic 与 Crash 的区别 vscode常用快捷键大全 网络流量单位 Core文件作用、设置及用法 linux批量执行工具omnitty安装及使用 linux 下误改了/etc/profile下的文件path路径导致整个系统用不了命令 python安装 linux less和more命令用法 Tair中对热key的内部处理 Tair中对大key的内部处理方式 redis的memtier-benchmark用法 阿里巴巴的缓存类测试产品及有缺点 如何在class文件中使用pom中profile级别的 <properties> profiles下的properties与properties有什么区别 Guava 工具类之 Splitter的使用 什么是“黑天鹅”和“灰犀牛” java-sdk接口测试覆盖率统计实践 java应用接口自动化覆盖率统计实践
redis的redis-benchmark用法
飘飘雪 · 2025-02-24 · via 博客园 - 飘飘雪

在 Redis 中,redis-benchmark 是一个内置的性能测试工具,用于评估 Redis 服务器的性能。它可以帮助你测试 Redis 在不同场景下的吞吐量、延迟和并发处理能力。以下是 redis-benchmark 的详细用法和示例。


1. 基本语法

redis-benchmark [options]

2. 常用选项

选项说明
-h <host> 指定 Redis 服务器的主机名(默认:127.0.0.1)。
-p <port> 指定 Redis 服务器的端口号(默认:6379)。
-a <password> 如果 Redis 设置了密码,使用该选项指定密码。
-c <clients> 指定并发客户端数量(默认:50)。
-n <requests> 指定总请求数量(默认:100000)。
-d <size> 指定 SET/GET 值的数据大小(单位:字节,默认:3)。
-t <tests> 指定要运行的测试类型(如 setgetincr 等,默认运行所有测试)。
-k <boolean> 是否使用长连接(1 表示使用,0 表示不使用,默认:1)。
-r <keyspacelen> 使用随机键名进行测试,指定键名的范围(默认:1000000)。
-P <numreq> 使用管道(pipeline)进行测试,指定每个管道的请求数量。
-q 安静模式,只显示每秒请求数(QPS)。
--csv 以 CSV 格式输出结果。
--lua <script> 测试 Lua 脚本的性能。

3. 常用示例

(1) 基本测试

运行所有默认测试(包括 SET、GET、INCR 等):

(2) 指定并发客户端和请求数量

使用 100 个并发客户端,总共发送 100000 个请求:

redis-benchmark -c 100 -n 100000

(3) 测试特定命令

仅测试 SET 和 GET 命令:

redis-benchmark -t set,get

(4) 测试随机键名

使用随机键名进行测试,键名范围为 1000000:

redis-benchmark -r 1000000

(5) 测试大值数据

测试 SET 和 GET 命令,值的大小为 1000 字节:

redis-benchmark -t set,get -d 1000

(6) 使用管道测试

使用管道进行测试,每个管道包含 10 个请求:

(7) 测试 Lua 脚本

测试 Lua 脚本的性能:

redis-benchmark --lua "return redis.call('set', 'foo', 'bar')"

(8) 安静模式

只显示每秒请求数(QPS):

(9) 测试远程 Redis 服务器

测试远程 Redis 服务器(IP: 192.168.1.100,端口: 6380):

bash

redis-benchmark -h 192.168.1.100 -p 6380

(10) CSV 格式输出

以 CSV 格式输出结果:


4. 结果解读

redis-benchmark 的输出结果通常包括以下信息:

  • QPS(Queries Per Second):每秒处理的请求数。
  • 延迟分布:不同百分比的请求延迟(如 50%、95%、99%)。
  • 总请求数:测试期间发送的总请求数。
  • 总时间:测试完成所需的时间。

例如:

====== SET ======
  100000 requests completed in 1.23 seconds
  50 parallel clients
  3 bytes payload
  keep alive: 1

100.00% <= 1 milliseconds
81703.42 requests per second

5. 注意事项

  • 测试环境:确保测试环境与生产环境一致,避免测试结果失真。
  • 资源限制:测试过程中可能会占用大量 CPU、内存和网络资源,避免在生产环境中运行。
  • 多次测试:建议多次运行测试,取平均值作为最终结果。