使用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指标

相关推荐
爱技术的阿呆1 分钟前
MySQL的表连接及案例演示
数据库·sql
光羽隹衡3 分钟前
SQL的导入导出数据和查询
数据库·sql
爱技术的阿呆3 分钟前
MySQL子查询及其案例
数据库·mysql
✿ ༺ ོIT技术༻16 分钟前
服务端高并发分布式结构演进之路
运维·服务器·redis·分布式·架构
..空空的人17 分钟前
C++基于protobuf实现仿RabbitMQ消息队列---技术认识2
服务器·数据库·c++·网络协议·gtest·异步·protobuf
小妖同学学AI24 分钟前
告别SQL编写!开源WrenAI实现自然语言与数据库的智能对话
数据库·sql·开源
风跟我说过她27 分钟前
基于Scrapy-Redis的分布式房产数据爬虫系统设计与实现
redis·分布式·爬虫·scrapy
DBA小马哥30 分钟前
PB级数据迁移挑战:Oracle故障响应优化实战
数据库·oracle
木易 士心30 分钟前
NestJS 核心揭秘:InstanceWrapper 的艺术与前端缓存新思路
前端·缓存
Logic10131 分钟前
《Mysql数据库应用》 第2版 郭文明 实验1 在MySQL中创建数据库和表核心操作与思路解析
数据库·sql·mysql·学习笔记·计算机网络技术·形考作业·国家开放大学