当前位置: 首页 > article >正文

使用k6进行Redis基准测试

1.安装环境

前提条件:已经安装go

安装xk6

go install go.k6.io/xk6/cmd/xk6@latest

安装成功会在GOPATH目录生成xk6可执行文件

安装xk6-redis

切换到xk6工作目录,执行如下命令

cd /Users/wan/go/bin
./xk6 build --with github.com/grafana/xk6-redis@latest

构建成功会在当前目录新增1个k6可执行文件

2.编写脚本

在当前目录新建test_redis.js文件

touch test_redis.js

test_redis.js

import redis from 'k6/x/redis';
import { check } from 'k6';

const client = new redis.Client('redis://localhost:6379');

export function setup() {
  client.set('key', 'value', 0);
}

export default function () {
  client.get('key');
}

3.运行测试

运行前开启redis服务,然后执行命令

brew services start redis
./k6 run test_redis.js --duration 5s

测试结果

扩展负载

./k6 run test_redis.js --duration 5s --vus 1000

测试结果

查看redis客户端连接数量

redis-cli
info clients
config get maxclients

增加延迟

test_redis1.js

import { Trend } from 'k6/metrics';
import redis from 'k6/x/redis';

let RedisLatencyMetric = new Trend('redis_latency', true);

export let options = {
  vus: 40,
  duration: '10s',
}

const client = new redis.Client('redis://localhost:6379');

export function setup() {
  client.set('key', 'value', 0);
}

export default function () {
  const start = Date.now();
  client.get('key');
  const latency = Date.now() - start;
  RedisLatencyMetric.add(latency);
}

测试结果

可以看到多了redis_latency指标


http://www.kler.cn/a/443459.html

相关文章:

  • Spring Boot整合Minio实现文件上传
  • GOAT‘S AI早鸟报Part9
  • QT-TCP-server
  • ffmpeg7.0 合并2个 aac 文件
  • css中的部分文字特性
  • 2024AAAI SCTNet论文阅读笔记
  • VMware ubuntu虚拟机网络配置
  • leecode1049.最后一块石头的重量||
  • 如何在 Spring Boot 应用程序中使用 WireMock 模拟外部 rest api 调用进行测试
  • 沙县小吃点餐系统|Java|SSM|JSP|
  • 深度学习实战之超分辨率算法(tensorflow)——ESPCN
  • 【C#】WebSoket 演示(使用websocket-sharp库)
  • 【FFmpeg 教程 一】截图
  • aws(学习笔记第十八课) 使用aws cdk(python)进行部署
  • WebPlotDigitizer 使用指南
  • 【Linux网络编程】第十二弹---构建与优化HTTP请求处理:从HttpRequest到HttpServer的实战
  • 信息安全概论
  • Web应用中的XSS防护实践
  • 位运算符说明
  • LWIP协议:三次握手和四次挥手、TCP/IP模型
  • 解释工厂模式
  • uniapp 将base64字符串保存为图片、Word、Excel、音频、视频等文件
  • CentOS 7.9 ISO 镜像下载
  • 大数据:开启智能时代的钥匙
  • RK3568平台(Kbuild篇)vmlinux 编译过程
  • Golang学习笔记_14——切片