使用k6进行Redis基准测试

1.安装环境

前提条件:已经安装go

安装xk6

bash 复制代码
go install go.k6.io/xk6/cmd/xk6@latest

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

安装xk6-redis

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

bash 复制代码
cd /Users/wan/go/bin
./xk6 build --with github.com/grafana/xk6-redis@latest

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

2.编写脚本

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

bash 复制代码
touch test_redis.js

test_redis.js

javascript 复制代码
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服务,然后执行命令

bash 复制代码
brew services start redis
./k6 run test_redis.js --duration 5s

测试结果

扩展负载

bash 复制代码
./k6 run test_redis.js --duration 5s --vus 1000

测试结果

查看redis客户端连接数量

bash 复制代码
redis-cli
info clients
config get maxclients

增加延迟

test_redis1.js

javascript 复制代码
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指标

相关推荐
独立开阀者_FwtCoder9 分钟前
不要再像我这样使用 React 导入了,试试 Wrapper 模式吧!
前端·javascript·数据库
代码吐槽菌12 分钟前
基于SpringBoot的律师事务所案件管理系统【附源码】
java·数据库·spring boot·后端·毕业设计
Bonnie_121529 分钟前
02-redis-数据结构实现原理
数据结构·redis·算法
用户240036192350038 分钟前
mysql 索引的初步认识
数据库
狂奔solar1 小时前
Vanna + qwq32b 实现 text2SQL
数据库·sql
网络安全工程师老王1 小时前
clickhouse注入手法总结
数据库·clickhouse·web安全·网络安全·信息安全
!!!5251 小时前
MongoDB 新手笔记
数据库·笔记·mongodb
JIngJaneIL1 小时前
健身管理小程序|基于java微信开发健身管理小程序的系统设计与实现(源码+数据库+文档)
java·数据库·小程序·vue·毕业设计·论文·健身管理小程序
Fancier__2 小时前
Redis 缓存 + MySql 持久化 实现点赞服务
redis·mysql·缓存·增量同步·点赞
zxy982 小时前
oracle em修复之路
网络·数据库·microsoft·oracle·database