使用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 小时前
Oracle到KingbaseES数据库迁移:全流程实战指南与避坑总结
数据库·oracle·数据库迁移·kingbasees
哈__2 小时前
Oracle至KingbaseES数据库迁移全攻略:痛点拆解、配置实操与问题排查
数据库·oracle
JZC_xiaozhong2 小时前
电商ERP如何同步订单数据到MySQL?集成方案解析
数据库·mysql·数据分析·etl工程师·嵌入式实时数据库·电商erp集成·数据集成与应用集成
消失的旧时光-19432 小时前
第四篇(实战): 订单表索引设计实战:从慢 SQL 到毫秒级
java·数据库·sql
知识分享小能手3 小时前
Oracle 19c入门学习教程,从入门到精通, Oracle 表空间与数据文件管理详解(9)
数据库·学习·oracle
zhengfei6113 小时前
Chroma DB — 未经授权的信息披露
数据库
KaiwuDB3 小时前
KaiwuDB 获评“2025 中国大数据产业年度国产化优秀代表厂商”
数据库
百***07454 小时前
一步API+Gemini 3.0 Pro进阶实战:多模态开发、性能调优与项目落地
数据库·microsoft
不想写bug呀4 小时前
Redis主从复制介绍
数据库·redis
颜颜yan_4 小时前
Oracle 迁移到 KingbaseES 实战:从评估到追平的一套可落地流程
数据库·oracle