前言

今天给xdm分享一个Redis自带的压测工具:redis-benchmark

介绍

redis-benchmark 是一个用于测试 Redis性能的基准测试工具,可以帮助开发人员评估和比较 Redis 在不同配置或负载情况下的吞吐量和延迟。

使用 redis-benchmark 可以执行多种类型的基准测试,例如:

  • SET/GET 操作测试:通过执行 SET 和 GET 命令来测试 Redis 的读写性能。
  • 并发连接测试:模拟多个并发连接同时执行 Redis 操作,测试 Redis 在高并发环境下的性能表现。
  • 多线程测试:通过在多个线程中执行 Redis 操作来测试 Redis 在多线程环境下的性能表现。
  • 数据大小测试:通过测试不同数据大小的操作来评估 Redis 在处理不同数据量时的性能表现。

redis-benchmark 提供了丰富的配置选项,可以控制并发连接数、数据大小、执行命令的类型等。测试结果包括每秒执行的命令数、平均延迟等指标,可以帮助开发人员优化 Redis 配置和应用程序设计,获得更好的性能。

示例

1、启用100个并发,发100000个请求。

redis-benchmark -h 127.0.0.1 -p 6379 -c 100 -n 100000

  • -h 127.0.0.1:指定 Redis 服务器的主机地址为 127.0.0.1,即本地主机。
  • -p 6379:指定 Redis 服务器的端口号为 6379,默认情况下 Redis 使用 6379 端口。
  • -c 100:指定并发连接数为 100,即同时并发地执行操作。
  • -n 100000:指定执行操作的总次数为 100,000 次。

如图所示,1.27秒就完成了100000次请求,每秒78802的吞吐量,说明Redis本身的性能就非常好。

这是最常用的命令,可以评估 Redis 在指定条件下的并发处理能力和性能表现。


2、指定主机地址、端口号和数据库编号测试Redis实例的性能

redis-benchmark -h 127.0.0.1 -p 6379 -q -d 100

  • -h 127.0.0.1:指定 Redis 服务器的主机地址为 127.0.0.1,即本地主机。
  • -p 6379:指定 Redis 服务器的端口号为 6379,默认情况下 Redis 使用 6379 端口。
  • -q:指定以静默模式运行基准测试,只输出总结结果,不显示每个操作的详细信息。
  • -d 100:指定要测试的数据库编号为 100。默认情况下 Redis 使用 0 号数据库。

如图所示,每秒的qps是7万多,性能很高。


3、执行100,000次测试 SET 和 LPUSH 命令的性能

redis-benchmark -t set,lpush -q -n 100000


4、执行100,000次测试Lua脚本的性能

redis-benchmark -n 100000 -q script load "redis.call('set','foo','bar')"

  • -t set,lpush:指定要执行的命令类型。在本例中,将同时执行 SET 和 LPUSH 命令,即将键值对设置到 Redis 中,并将元素推入列表。
  • -q:指定以静默模式运行基准测试,只输出总结结果,不显示每个操作的详细信息。
  • -n 100000:指定执行操作的总次数为 100,000 次。
  • -n 100000:指定执行操作的总次数为 100,000 次。在本例中,将执行 100,000 次 script load 命令。
  • -q:指定以静默模式运行基准测试,只输出总结结果,不显示每个操作的详细信息。
  • script load "redis.call('set','foo','bar')":指定要执行的命令内容。在本例中,将执行 script load 命令,并将 Lua 脚本作为参数传递给该命令。脚本内容是 redis.call('set','foo','bar'),表示在 Redis 中执行 SET 命令来设置键名为 foo、值为 bar 的键值对。

总结

通过 redis-benchmark 的测试结果,你可以获得qps、平均延迟、错误率等性能指标,从而根据需要进行调优和优化,确保Redis在实际生产环境中具有良好的性能和可靠性。

好了,今天的小知识你学会了吗?


如果喜欢,请点赞+关注↓↓↓,持续分享干货哦!

分享一个Redis自带的压测工具:redis-benchmark的更多相关文章

  1. SuperBenchmarker一个用.NET编写的压测工具

    0x01 前言 在这之前想必大家对ab(http)与abs(https)也有一些了解,我们今天不去看ab和abs,SuperBenchmarker(sb.exe)是一个压测工具,他是一个受Apache ...

  2. Apache自带 ab压测工具 Windows配置使用说明 - 随笔记录

    我们先来了解一下ab工具的概念,摘自网络: ab是apache自带的压力测试工具.ab非常实用,它不仅可以对apache服务器进行网站访问压力测试,也可以对或其它类型的服务器进行压力测试.比如ngin ...

  3. python服务端多进程压测工具

    本文描述一个python实现的多进程压测工具,这个压测工具的特点如下: 多进程 在大多数情况下,压测一般适用于IO密集型场景(如访问接口并等待返回),在这种场景下多线程多进程的区分并不明显(详情请参见 ...

  4. 作业2:go实现一个压测工具,具备upload功能

    作业:go实现压测工具,具备upload功能. upload内容是.tar.gz,使用http协议上传. 要求:upload的文件名,http目的地址灵活可配. deadline:2019.4.30

  5. Http压测工具wrk使用指南

    用过了很多压测工具,却一直没找到中意的那款.最近试了wrk感觉不错,写下这份使用指南给自己备忘用,如果能帮到你,那也很好. 安装 wrk支持大多数类UNIX系统,不支持windows.需要操作系统支持 ...

  6. Http压测工具wrk使用指南【转】

    用过了很多压测工具,却一直没找到中意的那款.最近试了wrk感觉不错,写下这份使用指南给自己备忘用,如果能帮到你,那也很好. 安装 wrk支持大多数类UNIX系统,不支持windows.需要操作系统支持 ...

  7. Http 压测工具 wrk 基本使用

    Http 压测工具 wrk 基本使用 Intro wrk 是一款现代HTTP基准测试工具,能够在单个多核CPU上运行时产生显着负载.它将多线程设计与可扩展事件通知系统(如epoll和kqueue)结合 ...

  8. wrk压测工具使用

    介绍分为四部分 1.wrk简述 2.wrk安装 3.wrk运行参数 4.wrk高级用法 1.wrk简述 当使用ab做压测的时候发现,ab的客户端消耗很大,而且测试时性能较差,测试redis,sprin ...

  9. web服务器压测工具siege、ab

    web服务器压测工具也挺多,这里只介绍我用过的这两种--siege(for linux).ab(for windows). 一.siege 1.简介: Siege是一款开源的压力测试工具,设计用于评估 ...

  10. 问题追查:QA压测工具http长连接总是被服务端close情况

    1. 背景 最近QA对线上单模块进行压测(非全链路压测),http客户端 与 thrift服务端的tcp链接总在一段时间被close. 查看服务端日志显示 i/o timeout. 最后的结果是: q ...

随机推荐

  1. SSIS向MySQL目标(Destination)写数据--Step By Step

    前言(废话) 最近的工作中涉及到SQLSERVER向MySQL的数据迁移同步,团队中理所当然准备用开发C#微服务接口的方式实现,我觉得这个路子曲折了,推荐SSIS的方式并自告奋勇接下了这个活.不过以前 ...

  2. 防缓存穿透利器-布隆滤器(BloomFilter)

    布隆过滤器 1.布隆过滤器原理 1.1 什么是布隆过滤器 1.2 使用场景 1.3 原理 1.4 布隆过滤器的优缺点 2.实现方式 2.1 初始化skuId的布隆过滤器 2.1.1 RedisCons ...

  3. 2021-11-17 WPF初识

    StackPanel容器:默认竖直排列,Orientation="Horizontal"横向排列,超过就不会显示 wrapPanel:超过会自动换行 设置样式: <Windo ...

  4. js: 获取Blob的值

    this.ws.onmessage = async (msg) => { console.log('从服务端获取到了数据') // 从真正服务端发送过来的原始数据时在msg中的data字段 co ...

  5. QLabel类中的常用方法&信号

    setAlignment: 按固定值方式对齐文本 Qt.AlignLeft:水平方向靠左对齐 Qt.AlignRight:水平方向靠右对齐 Qt.AlignCenter:水平方向居中对齐 Qt.Ali ...

  6. cesium中文网

    http://cesium.xin/cesium/cn/Documentation1.62/CallbackProperty.html

  7. [FlareOn4]login-buu ctf

    打开压缩包 是个html,我直接???? 这不是web弄的吗 离谱了,不过f12还是会的 不过其中的逻辑还是比较清楚的 先用伪代码确定加密逻辑,再直接写直接进行爆破解码 wo cao,wrong!fl ...

  8. Redis专题-队列

    Redis专题-队列 首先,想一想 Redis 适合做消息队列吗? 1.消息队列的消息存取需求是什么?redis中的解决方案是什么? 无非就是下面这几点: 0.数据可以顺序读取 1.支持阻塞等待拉取消 ...

  9. Go 语言中排序的 3 种方法

    原文链接: Go 语言中排序的 3 种方法 在写代码过程中,排序是经常会遇到的需求,本文会介绍三种常用的方法. 废话不多说,下面正文开始. 使用标准库 根据场景直接使用标准库中的方法,比如: sort ...

  10. 【pandas小技巧】--category类型补充

    category类型在pandas基础系列中有一篇介绍数据类型的文章中已经介绍过.category类型并不是python中的类型,是pandas特有的类型. category类型的优势那篇文章已经介绍 ...