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

推荐订阅源

量子位
博客园_首页
Google DeepMind News
Google DeepMind News
博客园 - Franky
The GitHub Blog
The GitHub Blog
GbyAI
GbyAI
有赞技术团队
有赞技术团队
Microsoft Azure Blog
Microsoft Azure Blog
G
Google Developers Blog
Recent Announcements
Recent Announcements
A
About on SuperTechFans
博客园 - 【当耐特】
博客园 - 三生石上(FineUI控件)
酷 壳 – CoolShell
酷 壳 – CoolShell
美团技术团队
罗磊的独立博客
IT之家
IT之家
博客园 - 聂微东
Stack Overflow Blog
Stack Overflow Blog
Jina AI
Jina AI
腾讯CDC
P
Proofpoint News Feed
Hugging Face - Blog
Hugging Face - Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com

博客园 - 飘飘雪

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

memtier_benchmark 是一个高性能的基准测试工具,专门用于测试 Redis 和 Memcached 等内存数据库的性能。它支持多线程、多客户端并发测试,并提供详细的性能统计信息。以下是 memtier_benchmark 的详细用法和示例。


1. 安装 memtier_benchmark

(1) 在 Linux 上安装

sudo apt-get update
sudo apt-get install memtier_benchmark

(2) 在 macOS 上安装

brew install memtier_benchmark

(3) 从源码编译安装

git clone https://github.com/RedisLabs/memtier_benchmark.git
cd memtier_benchmark
autoreconf -ivf
./configure
make
sudo make install

2. 基本语法

memtier_benchmark [options]

3. 常用选项

选项说明
-s <host> 指定 Redis 服务器的主机名(默认:127.0.0.1)。
-p <port> 指定 Redis 服务器的端口号(默认:6379)。
-a <password> 如果 Redis 设置了密码,使用该选项指定密码。
-c <clients> 指定并发客户端数量(默认:50)。
-t <threads> 指定线程数量(默认:4)。
-n <requests> 指定每个客户端的请求数量(默认:10000)。
-d <size> 指定 SET 值的数据大小(单位:字节,默认:32)。
--ratio <ratio> 指定读写操作的比例(如 1:1 表示读写各占一半,默认:1:0)。
--pipeline=<num> 使用管道(pipeline)进行测试,指定每个管道的请求数量。
--key-pattern=<pattern> 指定键名的生成模式(如 R:R 表示随机键名,S:S 表示顺序键名)。
--key-minimum=<min> 指定键名的最小值(默认:1)。
--key-maximum=<max> 指定键名的最大值(默认:1000000)。
--test-time=<sec> 指定测试的持续时间(单位:秒)。
--hide-histogram 隐藏直方图输出。
--json-out-file=<file> 将测试结果以 JSON 格式保存到文件。

4. 常用示例

(1) 基本测试

使用默认参数测试 Redis 服务器:

memtier_benchmark -s 127.0.0.1 -p 6379

(2) 指定并发客户端和线程数量

使用 100 个并发客户端和 8 个线程进行测试:

memtier_benchmark -s 127.0.0.1 -p 6379 -c 100 -t 8

(3) 指定请求数量

每个客户端发送 50000 个请求:

memtier_benchmark -s 127.0.0.1 -p 6379 -n 50000

(4) 指定读写比例

读写操作比例为 1:1(即读写各占一半):

memtier_benchmark -s 127.0.0.1 -p 6379 --ratio=1:1

(5) 使用管道测试

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

memtier_benchmark -s 127.0.0.1 -p 6379 --pipeline=10

(6) 指定键名范围

键名范围为 100000 到 200000:

memtier_benchmark -s 127.0.0.1 -p 6379 --key-minimum=100000 --key-maximum=200000

(7) 指定测试时间

测试持续时间为 60 秒:

memtier_benchmark -s 127.0.0.1 -p 6379 --test-time=60

(8) 输出 JSON 结果

将测试结果保存为 JSON 文件:

memtier_benchmark -s 127.0.0.1 -p 6379 --json-out-file=result.json

5. 结果解读

memtier_benchmark 的输出结果通常包括以下信息:

  • Throughput:每秒处理的请求数(QPS)。
  • Latency:请求的延迟分布(如最小值、最大值、平均值、百分比延迟等)。
  • Request Count:测试期间发送的总请求数。
  • Bytes Transferred:传输的总字节数。

例如:

ALL STATS
========================================================================
Type         Ops/sec     Hits/sec   Misses/sec   Avg. Latency    KB/sec 
-----------------------------------------------------------------------
Sets        50000.00          ---          ---        0.50000    1562.50 
Gets        50000.00     50000.00         0.00        0.50000    1562.50 
Waits           0.00          ---          ---            ---        --- 
Totals     100000.00     50000.00         0.00        0.50000    3125.00 

6. 注意事项

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