ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

Redis 作为数据库 — 使用 K6 进行速度测试

2022-11-14 15:37:04  阅读:447  来源: 互联网

标签:redis 数据库 测试 托管 设置  内存 WiFi 电池 电源


测试设置

这些测试是在我的M1 Pro Macbook Pro上进行的,具有32 GB的内存,连接到WiFi和电池电源。我正在使用 Jetbrains Rider 在发布模式下运行 Visualizer 微服务,在命令行中运行 Redis Stack,在 VSCode 中运行 Visualizer 前端,以及当前版本的 macOS Ventura。

数据摄取

这是在 Redis 中存储单个推文的代码

  varinternalId=await_tweetCollection.InsertAsync(tweetModel);

查看原始信息TweetDbService - 存储推文.cs由GitHub 托管 
这在专用微服务中运行,每次从 Twitter 的示例流中检索新推文时都会执行。在以后的文章中,我将介绍可视化工具的体系结构。

使用 RedisInsight,我可以看到,使用我当前的设置,我可以设法每秒发送大约 700 个命令,其中大部分是存储推文。

数据检索

检索数据由另一个微服务处理,该微服务仅从 Redis 读取数据。

使用K6,我编写了一个脚本,从 GraphQL API 检索 10 条推文。

  从“K6/http”导入http;
  导入{检查}从“K6”;
  import{Counter}from“k6/metrics”;
  import{htmlReport}from“https://raw.githubusercontent.com/benc-uk/k6-reporter/main/dist/bundle.js”;
  import{textSummary}from“https://jslib.k6.io/k6-summary/0.0.1/index.js”;
   
  导出常量请求=新计数器(“http_reqs”);
   
  导出常量选项 = {
  阶段:[
  { 目标:60,持续时间:“5s”},
  { 目标:30,持续时间:“1s”},
  { 目标:10,持续时间:“1s”},
  { 目标:0,持续时间:“2s”},
  ],
  };
   
  常量查询 = `
  query getFilteredTweets($filter: FindTweetsInputTypeQl!){
  推特 {
  查找(过滤器: $filter) {
 
  推文 {
  编号
  作者标识
  用户名
  对话标识
 
 
  发短信
  创建于
  geoLoc {
  纬度
  经度
  }
  实体 {
  主题标签
  提到
  }
  publicMetricsLikeCount
  publicMetricsRetweetCount
  publicMetricsReplyCount
  }
  }
  }
  }
  `;
  常量变量={过滤器:{页面大小:10,页数:1 } };
  letheaders={“Content-Type”:“application/json” };
   
  导出默认功能 () {
  constres=http.发布(
  “https://localhost:7083/graphql”,
  杰森。stringify({query:query,variables:variables}),
  { 标头:标头 }
  );
   
  constcheckRes=check(res, {
  “状态为 200”:(r)=>r。状态===200,
  });
  }
   
  这将导出为 HTML 作为文件名“result.html”,并使用文本摘要导出为 stdout
  利用句柄摘要回调通过 K6-REPORTER https://github.com/benc-uk/k6-reporter 导出为 HTML
  导出函数句柄摘要(数据) {
  返回 {
  “result.html”:htmlReport(data),
  stdout:textSummary(data,{indent:“ ”,enableColors:true}),
  };

 

标签:redis,数据库,测试,托管,设置, 内存,WiFi,电池,电源
来源:

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有