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

相关推荐
vivo互联网技术几秒前
从 10 分钟到 1 秒:ES 深度分页任意跳页的三轮优化实战
服务器·数据库·redis·elasticsearch·深度分页
倔强的石头_15 小时前
《Kingbase护城河》——猎捕慢查询:执行计划的微观解析与索引调优实战
数据库
SelectDB17 小时前
Apache Doris Python UDF:让 SQL 直接调用 Python 生态,支撑 Agent 时代复杂业务逻辑
大数据·数据库·python
jiayou642 天前
KingbaseES 表级与列级加密完全指南
数据库·后端
用户3074596982073 天前
Redis 延时队列详解
redis
GBASE3 天前
G术时刻 |GBase 8s数据库事务并发控制之封锁技术介绍(下)
数据库
烤代码的吐司君3 天前
Redis 数据结构 ZSet, BIT, HyperLogLog,Geo 空间数据
redis·后端
xiezhr3 天前
逛GitHub发现了一款免费的带AI功能的数据库管理工具
数据库·ai编程·dba
吃糖的小孩4 天前
给 QQ AI 机器人设计“可控记忆”:会话摘要、手动长期记忆与角色卡边界
数据库
笃行3505 天前
金仓数据库数据安全双防线:静态存储加密与传输加密实战
数据库