• 分享一个Redis自带的压测工具:redis-benchmark


    前言

    今天给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 次。

    image

    如图所示,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 号数据库。

    image

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


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

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

    image


    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 的键值对。

    image

    总结

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

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


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


    __EOF__

  • 本文作者: 程序员济癫
  • 本文链接: https://www.cnblogs.com/fulongyuanjushi/p/17773608.html
  • 关于博主: 评论和私信会在第一时间回复。或者直接私信我。
  • 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
  • 声援博主: 如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。
  • 相关阅读:
    python- excel 创建/写入/删sheet+花式遍历
    springboot移除nacos yml无法加载
    SpringBoot源码解析-事件驱动注解@EventListener
    2023年11月在线IDE流行度最新排名
    [docker] -- 初识docker
    xlwings 禁止提示 禁止 更新链接
    32单片机基础:OLED调试工具的使用
    基于C#的校园闲置物品共享系统的开发和实现(Asp.net+Web)
    查找算法【哈希表】 - 处理冲突的方法:开放地址法-二次探测法 & 随机探测法 & 再散列法
    Altium Designer实用系列(一)----原理图导入PCB、PCB板子外形、多层板绘制等
  • 原文地址:https://www.cnblogs.com/fulongyuanjushi/p/17773608.html