使用k6进行Redis基准测试

ops/2024/12/17 9:42:59/

1.安装环境

前提条件:已经安装go

安装xk6

go install go.k6.io/xk6/cmd/xk6@latest

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

安装xk6-redis

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

cd /Users/wan/go/bin
./xk6 build --with github.com/grafana/xk6-redis@latest

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

2.编写脚本

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

touch test_redis.js

test_redis.js

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服务,然后执行命令

brew services start redis
./k6 run test_redis.js --duration 5s

测试结果

扩展负载

./k6 run test_redis.js --duration 5s --vus 1000

测试结果

查看redis客户端连接数量

redis-cli
info clients
config get maxclients

增加延迟

test_redis1.js

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


http://www.ppmy.cn/ops/142613.html

相关文章

Vue入门到精通:核心语法—计算属性

Vue入门到精通:核心语法—计算属性 计算属性是Vue.js中一个非常强大的功能,它允许我们根据现有的数据动态地计算出新的值。计算属性在模板中使用时,就像普通的属性一样,但它们是基于依赖进行缓存的,只有当相关依赖发生…

linux命令uname、lsof、netstat、ss使用教程

uname uname 是一个 Linux/Unix 系统中的命令,用于显示操作系统和内核相关的信息。它可以显示系统的名称、 内核版本、硬件架构等信息。 查看操作系统名称 uname该命令默认只显示系统的名称,例如 Linux。 查看所有系统信息 uname -a-a 选项会显示系…

如何与GPT更高效的问答

与GPT进行高效沟通的关键在于提问的方式。通过合理的提问技巧,可以更清晰地表达需求,从而获得更准确的回答。以下是一些实用的建议,帮助你提升与GPT的交流效率。 1. 使用简单明了的语言: 尽量避免使用复杂的术语和行话&#xff0c…

Guava 库中的 `Multiset` 是一个允许元素重复的集合

Guava 库中的 Multiset 是一个允许元素重复的集合。它继承自 Collection 接口,提供了额外的方法来处理元素的计数。以下是一些使用 Guava Multiset 的基本代码示例: 引入 Guava 库 首先,确保你的项目中已经添加了 Guava 库的依赖。如果你使…

爬虫逆向学习(十四):分享一下某数通用破解服务开发经验

阅前须知 这篇博客不是教大家怎么实现的,而且告知大家有这个东西,或者说一种趋势,借此分享自己大致的实现经验。具体的实现我也不好整理,毕竟是在别人的基础上缝缝补补。 前言 使用补环境方式破解过某数的同学都知道&#xff0…

如何排查服务器是否有被黑客入侵的迹象?

排查服务器是否被黑客入侵是系统维护的重要工作。以下是详细的排查步骤,通过分析日志、检查用户、进程、网络连接等多个方面来判断服务器是否存在被入侵的迹象。 一、入侵的常见迹象 在开始排查之前,以下是一些常见的入侵迹象,若发现这些情况…

uniapp+uview 图片预览组件

uniapp uview 图片列表预览组件 注意&#xff1a;在app端需要先判断是否存在手机相册权限 <template><!-- css使用的是uview1.0组件中的css --><!-- u-image 使用的是uview1.0的组件 --><view class"u-flex u-row-between u-flex-wrap">&…

穷举vs暴搜vs深搜vs回溯vs剪枝系列一>找出所有子集的异或总和再求和

题目&#xff1a; 解析&#xff1a; 代码&#xff1a; private int ret;//返回周结果private int path;//枚举一个元素就异或进去public int subsetXORSum(int[] nums) {dfs(nums, 0);return ret;} private void dfs(int[] nums, int pos){ret path;for(int i pos; i <…