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

相关推荐
Lw老王要学习10 分钟前
Linux数据库篇、第一章_02_MySQL的使用增删改查
linux·运维·数据库·mysql·云计算·it
林下清风~14 分钟前
MySQL——九、锁
数据库·mysql
清幽竹客28 分钟前
redis数据结构-02(INCR、DECR、APPEND)
数据结构·redis
Toky Zhu1 小时前
ubuntu清除缓存
linux·ubuntu·缓存
呦呦鹿鸣Rzh1 小时前
redis
数据库·redis·缓存
xiaogai_gai1 小时前
有效的聚水潭数据集成到MySQL案例
android·数据库·mysql
只因只因爆2 小时前
spark的缓存
大数据·缓存·spark
web130933203982 小时前
Mysql的安装配置教程(非常详细)从零基础入门到精通,看完这一篇就够了
数据库·mysql
三天不学习2 小时前
浅析AI大模型为何需要向量数据库?【入门基础】
数据库·人工智能·欧氏距离·向量数据库·余弦相似度
MonkeyKing_sunyuhua2 小时前
将数据库结构化数据整合到RAG问答中的方式
数据库