Redis 压力测试

作者: Martain | 来源:发表于2021-05-25 19:52 被阅读0次

前言

最近公司用到Redis作为中间件,但是使用Redis作为中间件的时候,有的时候比较难定位到问题具体在什么地方,所以有的时候需要临时的给Redis一些压力,这样能比较快速的复现问题,于是就是使用了Redis自带的测试工具来做相关测试。

关于redis-benchmark

Usage: redis-benchmark [-h <host>] [-p <port>] [-c <clients>] [-n <requests]> [-k <boolean>]
 -h <hostname>      # redis服务地址 (default 127.0.0.1)
 -p <port>          # redis服务的端口 (default 6379)
 -s <socket>        # 服务器的socket (overrides host and port)
 -a <password>      # 数据库密码
 -c <clients>       # 并发链接的客户端数量 (default 50)
 -n <requests>      # 请求的总数 (default 100000)
 -d <size>          # 单个数据包的大小 (单位是bytes,默认是2)
 --dbnum <db>       # 执行默认的数据库 (default 0)
 -k <boolean>       #客户端是否使用keepalive,1为使用,0为不使用,默认值为1
 -r <keyspacelen>   #  key的长度;SET/GET/INCR 使用随机 key, SADD 使用随机值。使用-r的话可以生成更多的key
 -P <numreq>        # 通过管道请求的数量 Default 1 (no pipeline).
 -q                 # 强制退出 redis。仅显示 query/sec 值
 --csv              # 以 CSV 格式输出
 -l                 # 循环执行,永久执行测试
 -t <tests>         # 仅运行以逗号分隔的测试命令列表。如果不指定会依次压测多个命令(get,set,incr,lpush)结果
 -I                 # Idle 模式。仅打开 N 个 idle 连接并等待。

可以用于压力测试,也可以用于快速造数据。

一些命令

切换库

SELECT DB_NUMBER # 切换数据库的命令

清空本库

> SELECT 1 # 切换到DB 1
> FLUSHDB # 删除DB 1 的所有数据

清空Redis

> FLUSHALL # 删除redis中的所有数据

碎片整理(数据删除,内存没释放问题)

Redis有自己的内存分配器,当数据删除后,释放的内存空间由Redis自己的内存分配器管理,并没有立即将内存返回给操作系统,所以对于操作系统而言,仍然认为Redis占用了内存。这样的好处是,减少Redis向系统申请内存分配的次数,提升Redis自身性能。

redis-cli  memory purge # 手动清零碎片,释放内存

使用实列

redis-benchmark -t set --dbnum 1 -c 10 -d 1024 -n 300000 -r 500000 -P 10

在1号数据库上,使用10个客户端连接去发送300000个大小为1024字节(1kb)的数据包,这300000个数据包的key从500000以下随机产生,通过管道请求的数据量为10。

相关文章

  • redis压力测试

    redis-benchmark -h localhost -p 6379 -c 100 -n 100000(100...

  • redis压力测试

    Redis 自带了一个叫 redis-benchmark 的工具来模拟 N 个客户端同时发出 M 个请求。 (类似...

  • Redis 压力测试

    前言 最近公司用到Redis作为中间件,但是使用Redis作为中间件的时候,有的时候比较难定位到问题具体在什么地方...

  • Redis_测试性能

    redis-benchmark是一个压力测试工具,官方自带的性能测试工具!redis性能测试工具可选参数如下所示:...

  • 压力测试分析(转载大牛的)

    压力测试分析 1.从压力测试说起 压力测试的理解,xxx的性能10w/s,对你有意义么? 举个栗子,Redis官网...

  • Redis 性能测试

    本文使用 redis 自带的 redis-benchmark 工具进行压力测试 参数说明 命令格式如下: 参数说明...

  • Tips Book

    redis可以使用redis-benchmark命令进行压力测试。常用命令参数有 -h : host -p : p...

  • redis基础知识

    一、redis-benchmark redis自带的压力测试工具! 如果按照默认路径安装,该工具安装在路径/...

  • SpringBoot中的缓存穿透、击穿、雪崩解决方案

    添加Redis依赖 RedisTemplate底层使用lettuce的话,进行压力测试时,会抛内存溢出异常,因此去...

  • 关于net.ipv4.ip_local_port_range的坑

    今天压力测试某服务时发现一个特别诡异的问题,redis-cli连接后端redis-server,客户端所在的服务器...

网友评论

    本文标题:Redis 压力测试

    本文链接:https://www.haomeiwen.com/subject/njvcsltx.html