【软件测试】性能测试 —— 基础概念篇
🥰🥰🥰来都来了,不妨点个关注叭!
👉博客主页:欢迎各位大佬!👈
本期内容主要介绍性能测试相关知识,首先我们需要了解性能测试是什么,本期内容主要介绍性能测试基础概念
文章目录
- 1. 性能测试是什么?
- 1.1 引入
- 1.2 性能测试定义
- 1.3 性能测试与功能测试区别
- 1.4 软件性能好坏表现
- 1.5 影响软件性能的因素
- 2. 为什么要做性能测试?
- 3. 性能测试有哪些衡量指标?
- 3.1 并发用户数
- 3.2 响应时间
- 3.3 事务响应时间
- 3.4 每秒事务通过数(TPS)
- 3.5 点击率
- 3.6 吞吐率
- 3.7 思考时间
- 3.8 资源利用率
- 4. 性能测试有哪些分类?
- 4.1 基准性能测试
- 4.2 负载性能测试
- 4.3 压力性能测试
- 4.4 可靠性测试
- 5. 性能测试执行流程是怎么样的?
1. 性能测试是什么?
1.1 引入
想一想在生活中有没有遇到过软件的性能问题呢?
比如说在日常生活中,想去看演唱会或者是音乐节,很多时候抢票,app或者网站会崩溃,导致无法抢票,不少人首先是检查自己的网络问题,5G 和 WiFi 来回切换,还是有问题,一询问,都有这个问题,原来是服务器崩溃了! 在生活中,还有很多这样的场景!
1.2 性能测试定义
那么性能测试到底是什么呢?
性能测试是:测试人员借助性能测试工具,模拟系统在不同场景下,对应的性能指标是否达到预期
(不是人工完成,需要借助工具!)
听着是不是还是有一点疑惑呢~
这里的性能测试工具指的是 —— 比如 LoadRunner、Jmeter、还有一些第三方的软件~
这里的不同场景指的是 —— 比如在流量高峰期,或者软件持续运行一段时间,以及对应的性能指标是否达到预期等等
1.3 性能测试与功能测试区别
性能测试和功能测试的区别
- 从定义来说:功能测试依靠人工,性能测试依靠工具
- 从场景来看:功能测试是看软件是否实现需求,即不管在什么场景下,只要能够正常运行,性能测试是看软件在一些极端的情况下,是不是能正常运行
1.4 软件性能好坏表现
那么什么样的表现属于软件性能好的表现,什么样的表现属于软件性能不好的表现?
【举例一】举这样一个例子,比如有两个手机,下了不同的软件~
【举例二】还有比如说软件的用户日活跃度,在双十一的时候,可以对比淘宝、京东、拼多多等用户日活跃度,用户日活跃度越高的,在同一时间承载的压力更大,其软件性能表现是更好的
【举例三】那性能不好的表现,比如说 12306 春运抢票,服务器经常会崩溃,并发量太大了~
(如何解决呢?服务器升级? 服务器升级太贵了,要掏钱!还有什么呢? 比如在登录前有一个验证,避免机器人抢票,较少用户数量,减少并发数,还可以软件算法优化等等手段)
1.5 影响软件性能的因素
影响软件性能的因素有哪些呢?
- 硬件方面:服务器CPU利用率、 内存、磁盘操作频率、CPU核心、带宽
- 软件方面:算法、编程语言
- 用户方面: 用户数量(并发数)、用户使用时长、用户访问频率
2. 为什么要做性能测试?
我们来想一下,一个软件开发出来了,是不是会希望更多的用户来使用呢~ 一旦使用的用户变多,流量就高了,既然流量高了,那软件能不能承受这个高的流量呢?
那么到底为什么要做性能测试呢? 以下是做性能测试原因:
- 可以获取系统性能的指标,作为性能指标的基准
为什么要作基准呢? 比如说一开始发布的软件,我们做性能测试,进行摸底,作为性能指标的基准,之后软件升级时,与这个基准进行对比~比如有一款软件登录耗时 30ms,之后升级后,登录耗时 50ms,这显然是不好的! - 可以验证系统的性能指标是否达到要求的性能需求
比如说有这一些性能需求:
- 应用程序是否能够满足系统要求的各种性能指标
- 应用程序是否能处理预期的用户负载并有盈余能力
- 应用程序是否能处理业务所需要的事务数量
- 在预期和非预期的用户负载下,应用程序是否稳定
- 是否能确保用户在真正使用软件时获得舒服的体验
- 发现系统的性能瓶颈,或者是内存泄漏等问题,及时优化与解决
- 可以知道系统正常工作的情况下的最大容量
- 有利于帮助系统运维部门能更好的规划硬件配置
3. 性能测试有哪些衡量指标?
3.1 并发用户数
1)什么是并发呢?
举这样三个场景,如下:
第一种情况:1个用户访问某个网站
第二种情况:100万个用户每隔10s访问某个网站
第三种情况:100万个用户同时访问某个网站
(注意两个条件:大量用户、“同时”)
答案很显然,并发是第三种情况
并行和并发的定义,可以参考往期内容:【多线程】进程与线程
2)什么是用户数呢?
这里有 3 种用户数:
- 系统用户数:系统注册用户
- 在线用户数:成功登录系统用户数
- 并发用户数:大量的用户访问系统,此时访问的用户数,就是并发用户数量
(一般来说,系统用户数 > 在线用户数 > 并发用户数)
!!!注意区分业务层面和后端服务器层面的并发用户数
【业务层面的并发用户数】指的是同时向服务器发送请求的用户数量
【后端服务器层面的并发用户数】指的是同时向服务器发送请求的请求数量
比如说我打开了一个网页,这里是一个业务层面的用户数量,数量是1,但可以看到后端服务器同时向服务器发送的请求数量是 23 次,这两个是不一样的!!!
3.2 响应时间
1)用户响应时间
从图中可以看到,用户响应时间是一整个过程,用户响应时间是:N1+A1+N2+A2+N3+A3+N4
2)请求响应时间
从图中可以看到,请求响应时间是达到服务器后的时间,请求响应时间是:A1+N2+A2+N3+A3
3)影响一个软件响应时间的因素
- 网络带宽
- 数据库性能
- 服务器处理性能
- 软件算法、逻辑
- 用户设备
3.3 事务响应时间
比如一个点餐软件,流程:订单 ——> 支付 ——> 权益(是否为会员、券等)
这里的一个事务是一个业务度量单位,是指一组密切相关的子操作的组合。比如,一笔电子支付操作,
后台处理的时候可能需要经过会员系统,账务系统,支付系统,银行系统等,这就是是一个关于支付事
务里面包含的操作。而对于用户,往往也只关注整个支付花费了多长时间。
3.4 每秒事务通过数(TPS)
每秒事务通过数量 = 处理的事务数量/ 事务花费时间
每秒事务通过的数量越多,自然而然说明软件的性能越好!
TPS 是指每秒系统能够处理的事务数,它是衡量系统处理能力的重要指标,当压力加大时,TPS曲线如果变化缓慢或者有平坦的趋势,很有可能是服务器开始出现瓶颈了,如果环境没有发生大的变化,对于同一系统会存在一个最大处理事务能力,它并不随着并发用户的增减而改变
3.5 点击率
【点击量】用户点击数量
【点击率】点击量/ 时间
3.6 吞吐率
【吞吐量】用户一次请求和服务器之间的数据交互量
A服务处理 100M 数据,花费时间 2 s
B服务处理 10M 数据,花费时间 1s
因此,不能以吞吐量为性能衡量标准,以吞吐率为衡量指标
【吞吐率】吞吐量/时间
3.7 思考时间
【思考时间】用户在对软件进行操作的时候,每一个操作中间间隔的时间
3.8 资源利用率
【资源利用率】不同系统资源的使用情况,包含 CPU、内存、硬盘、网络等
4. 性能测试有哪些分类?
这里介绍常见的 4 种性能测试分类~
4.1 基准性能测试
让系统在正常情况下运行,观察软件性能指标
应用场景:软件刚上线需要进行性能摸底
4.2 负载性能测试
验证软件在一定的压力情况下运行,观察性能指标是否出现了拐点
4.3 压力性能测试
系统处于饱和情况下(这个饱和情况下,往往会把系统弄崩溃),观察系统性能指标
可以看到这个瓶子,下面一整个是基准性能,上面的漏斗是负载性能测试,水都满了,再给水,就是压力测试~ 这个图非常形象!
4.4 可靠性测试
验证系统在一个持续的时间段内运行,在这个运行时间段,观察系统各项性能指标是否正常!
(持续 1 天 ——> 持续运行一周 ——> 持续运行 1 个月 ——> 一个季度 ——> 一年)
5. 性能测试执行流程是怎么样的?
功能测试执行流程:需求分析 ——> 测试计划 ——> 测试设计 ——> 测试执行 ——> 测试评估 (测试报告) ——> 上线
性能测试执行流程:需求分析 ——> 测试计划 ——> 选择一款性能测试工具 ——> 性能测试脚本 ——> 执行性能测试脚本 ——> 产出一个性能测试报告
【注意】性能测试出现不符合预期的情况,不叫它 BUG,它叫性能瓶颈,在性能测试中,出现了性能瓶颈,开发修复的过程,叫它优化
比如要做一个基准性能测试,这里举一个例子,
需求分析:摸底 page 接口可以容纳的用户数量
工具: Loadrunner 针对需求编写脚本
项目名称:xxx 性能摸底测试
测试人员:xxx 测试时间:2025年4月6日(一定是完成了功能测试的)
性能指标截图:
结论:page 接口容纳的人太少,测试不通过
解决方案:page 查询接口加缓存
💛💛💛本期内容回顾💛💛💛
✨✨✨本期内容到此结束啦~
相关文章:
【软件测试】性能测试 —— 基础概念篇
🥰🥰🥰来都来了,不妨点个关注叭! 👉博客主页:欢迎各位大佬!👈 本期内容主要介绍性能测试相关知识,首先我们需要了解性能测试是什么,本期内容主要介绍性能测试…...
Jmeter脚本使用要点记录
一,使用Bean shell获取请求响应的数据 byte[] result prev.getResponseData(); String str new String(result); System.out.println(str);其中,prev是jmeter的内置变量,直接使用即可。 二,不同的流程中传参数 vars.put(&quo…...
HTML5
HTML5是对HTML标准的第5次修订 HTML是超文本标记语言的简称,是为【网页创建和其它可在网页浏览器中所看到信息】而设计的一种标记性语言。 H5优点:跨平台使用将互联网语义化,更好地被人类与机器所理解降低了对浏览器的依赖,更好地…...
算法—博弈问题
1.博弈问题 1.前提:每一步都是最优解的情况下,先手的那个人已经确定了胜负 用dp数组记录每一步操作后的结果,如果下一步会出现必输结果,那么说明执行这步操作的人必胜,因为必输结果的下一步操作后都是必胜的结果,所以在…...
vector模拟实现(2)
1.构造函数 2.拷贝构造 我们利用push_back和reserve来实现拷贝构造。 3.迭代器的实现 由于底层是一段连续的空间,所以我们选择用指针来实现迭代器。 4.swap 这里的swap函数是有两种方法,一种是开辟一段新的空间,然后memcpy来把原来的数据拷…...
【嵌入式系统设计师】知识点:第3章 嵌入式硬件设计
提示:“软考通关秘籍” 专栏围绕软考展开,全面涵盖了如嵌入式系统设计师、数据库系统工程师、信息系统管理工程师等多个软考方向的知识点。从计算机体系结构、存储系统等基础知识,到程序语言概述、算法、数据库技术(包括关系数据库、非关系型数据库、SQL 语言、数据仓库等)…...
输入框输入数字且保持精度
在项目中如果涉及到金额等需要数字输入且保持精度的情况下,由于输入框是可以随意输入文本的,所以一般情况下可能需要监听输入框的change事件,然后通过正则表达式去替换掉不匹配的文本部分。 由于每次文本改变都会被监听,包括替换…...
Vue3中的Inject用法全解析
大家好呀~今天给大家带来一个超级实用的Vue3技巧:如何使用inject进行组件间的通信!如果你对组件间的数据传递、事件触发感兴趣,那一定不要错过这篇文章哦!话不多说,直接开整~ 🌟 什么…...
FPGA同步复位、异步复位、异步复位同步释放仿真
FPGA同步复位、异步复位、异步复位同步释放仿真 xilinx VIVADO仿真 行为仿真 综合后功能仿真,综合后时序仿真 实现后功能仿真,实现后时序仿真 目录 前言 一、同步复位 二、异步复位 三、异步复位同步释放 总结 前言 本文将详细介绍FPGA同步复位、异…...
深度解析需求分析:理论、流程与实践
深度解析需求分析:理论、流程与实践 一、需求分析的目标(一)准确捕捉用户诉求(二)为开发提供清晰指引 二、需求分析流程(一)需求获取(二)需求整理(三…...
QT学习笔记4--事件
1. 鼠标事件 1.1 鼠标按下 QObject中的mousePressEvent()方法 在子类中重写该方法,就可以处理鼠标按下 void myLabel::mousePressEvent(QMouseEvent *ev) {if (ev->button() Qt::LeftButton) {QString str QString("mouse press x %1, y %2").…...
AnimateCC基础教学:json数据结构的测试
一.核心代码: const user1String {"name": "张三", "age": 30, "gender": "男"}; const user1Obj JSON.parse(user1String); console.log("测试1:", user1Obj.name, user1Obj.age, user1Obj.gender);/*const u…...
针对Qwen-Agent框架的源码阅读与解析:FnCallAgent与ReActChat篇
在《针对Qwen-Agent框架的Function Call及ReAct的源码阅读与解析:Agent基类篇》中,我们已经了解了Agent基类的大体实现。这里我们就再详细学习一下FnCallAgent类和ReActChat的实现思路,从而对Agent的两条主流技术路径有更深刻的了解。同时&am…...
在docker中安装RocketMQ
第一步你需要有镜像包,这个2023年的时候docker就不能用pull拉取镜像了,需要你自己找 第二步我用的是FinalShell,用别的可视化界面也用, 在你自己平时放镜像包的地方创建一个叫rocketmq的文件夹,放入镜像包后,创建一个…...
Spring Boot + Kafka 消息队列从零到落地
背景 依赖 <dependency> <groupId>org.springframework.kafka</groupId> <artifactId>spring-kafka</artifactId> <version>2.8.1</version> </dependency> 发送消息 //示例: private final KafkaTemplate<St…...
《打破语言壁垒:bilingual_book_maker 让外文阅读更轻松》
在寻找心仪的外文电子书时,常常会因语言障碍而感到困扰。虽然可以将文本逐段复制到在线翻译工具中,但这一过程不仅繁琐,还会打断阅读的连贯性,让人难以沉浸其中。为了克服这一难题,我一直在寻找一种既能保留原文&#…...
JCR一区文章,壮丽细尾鹩莺算法Superb Fairy-wren Optimization-附Matlab免费代码
本文提出了一种新颖的基于群体智能的元启发式优化算法——壮丽细尾鹩优化算法(SFOA),SFOA从精湛的神仙莺的生活习性中汲取灵感。融合了精湛的神仙莺群体中幼鸟的发育、繁殖后鸟类喂养幼鸟的行为以及它们躲避捕食者的策略。通过模拟幼鸟生长、繁殖和摄食阶…...
Kafka 如何实现 Exactly Once
Kafka 中实现 Exactly Once Semantics(EOS,精确一次语义),是为了确保: 每条消息被处理一次且仅一次,既不会丢失,也不会重复消费。 这是一种在分布式消息系统中非常难实现的语义。Kafka 从 0.11 …...
在K8S中,内置的污点主要有哪些?
在Kubernetes (K8S)中,内置的污点(Taints)主要用于自动化的节点亲和性和反亲和性管理。当集群中的节点出现某种问题或满足特定条件时,kubelet会自动给这些节点添加内置污点。以下是一些常见的内置污点: node.kubernete…...
AI大模型:(二)2.1 从零训练自己的大模型概述
目录 1. 分词器训练 1.1 分词器概述 1.2 训练简述 2.预训练 2.1 预训练概述 2.2 预训练过程简介 3.微调训练 3.1 微调训练概述 3.2 微调过程简介 4.人类对齐 4.1 人类对齐概述 4.2 人类对齐训练过程简介 近年来,大语言模型(LLM)如GPT-4、Claude、LLaMA等…...
电动垂直起降飞行器(eVTOL)
电动垂直起降飞行器(eVTOL)的详细介绍,涵盖定义、技术路径、应用场景、市场前景及政策支持等核心内容: 一、定义与核心特性 eVTOL(Electric Vertical Take-off and Landing)即电动垂直起降飞行器…...
LM Studio本地部署大模型
现在的AI可谓是火的一塌糊涂, 看到使用LM Studio部署本地模型非常的方便, 于是我也想在自己的本地试试 LM Studio 简介 LM Studio 是一款专为本地运行大型语言模型(LLMs)设计的桌面应用程序,支持 Windows 和 macOS 系统。它允许用户在个人电…...
PyTorch 深度学习 || 6. Transformer | Ch6.1 Transformer 框架
1. Transformer 框架...
SLAM文献之-SLAMesh: Real-time LiDAR Simultaneous Localization and Meshing
SLAMesh 是一种基于 LiDAR 的实时同步定位与建图(SLAM)算法,其核心创新点在于将定位与稠密三维网格重建相结合,通过动态构建和优化多边形网格(Mesh)来实现高精度定位与环境建模。以下是其算法原理的详细解析…...
[Python] 位置相关的贪心算法-刷题+思路讲解版
位置贪心-题目目录 例题1 - 香蕉商人编程实现输入描述输出描述思路AC代码 例题2 - 分糖果编程实现输入描述输入样例输出样例思路AC代码 例题4 - 分糖果II编程实现输入描述输出描述输入样例思路AC代码 例题3 - 分糖果III编程实现输入描述输出描述输入样例输出样例思路AC代码 例题…...
练习题:125
目录 Python题目 题目 题目分析 需求理解 关键知识点 实现思路分析 代码实现 代码解释 导入 random 模块: 指定范围: 生成随机整数: 输出结果: 运行思路 结束语 Python题目 题目 生成一个指定范围内的随机整数。 …...
实战设计模式之迭代器模式
概述 与上一篇介绍的解释器模式一样,迭代器模式也是一种行为设计模式。它提供了一种方法来顺序访问一个聚合对象中的各个元素,而无需暴露该对象的内部表示。简而言之,迭代器模式允许我们遍历集合数据结构中的元素,而不必了解这些集…...
Spring-AOP详解(AOP概念,原理,动态代理,静态代理)
目录 什么是AOP:Spring AOP核心概念需要先引入AOP依赖:1.切点(Pointcut):2.连接点:3.通知(Advice):4.切面: 通知类型:Around:环绕通知,此注解标注的通知方法在目标方法前,…...
【dify应用】将新榜排行数据免费保存到飞书表格
新榜中导出数据是收费的,如何免费导出呢 接口分析 切换分类排行,数据是在这个接口中请求的 参数: {"rankType":1,"rankDate":"2025-04-05","type":["财富"],"size":25,"…...
【Linux】线程池详解及基本实现
📢博客主页:https://blog.csdn.net/2301_779549673 📢博客仓库:https://gitee.com/JohnKingW/linux_test/tree/master/lesson 📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正! &…...
基于论文的大模型应用:基于SmartETL的arXiv论文数据接入与预处理(一)
1. 背景 arXiv简介(参考DeepSeek大模型生成内容): arXiv(发音同“archive”,/ˈɑːrkaɪv/)是一个开放的学术预印本平台,主要用于研究人员分享和获取尚未正式发表或已完成投稿的学术论文。创…...
Leetcode 3508. Implement Router
Leetcode 3508. Implement Router 1. 解题思路2. 代码实现 题目链接:3508. Implement Router 1. 解题思路 这一题就是按照题意写作一下对应的函数即可。 我们需要注意的是,这里,定义的类当中需要包含以下一些内容: 一个所有i…...
Nmap全脚本使用指南!NSE脚本全详细教程!Kali Linux教程!(六)
脚本类别 discovery(发现) sip-methods 已演示过。这里不再演示。 436. smb-enum-domains 尝试枚举系统上的域及其策略。这通常需要凭据,但 Windows 2000 除外。除了实际域之外,通常还会显示“内置”域。Windows 在域列表中返…...
了解适配器模式
目录 适配器模式定义 适配器模式角色 适配器模式的实现 适配器的应用场景 适配器模式定义 适配器模式,也叫包装模式。将一个类的接口,转换成客户期望的另一个接口,适配器让原本接口不兼容的类可以合作无间。 简单来说就是目标类不能直接…...
C语言:几种字符串常用的API
字符串的常用操作 C 语言的标准库 <string.h> 提供了很多用于处理字符串的函数。 1. strlen - 计算字符串长度 size_t strlen(const char *str);功能:计算字符串 str 的长度,不包含字符串结束符 \0。 2.strcpy - 复制字符串 char *strcpy(char…...
Django构建安全中间件实用示例
Django安全中间件实用指南 推荐超级课程: 本地离线DeepSeek AI方案部署实战教程【完全版】Docker快速入门到精通Kubernetes入门到大师通关课AWS云服务快速入门实战目录 Django安全中间件实用指南什么是Django中的中间件?Django中的安全中间件特性配置示例配置示例配置示例示…...
排序算法(快速排序,选择排序......)【泪光2929】
hello,大家好!今天给大家分享一下各种排序: 1,选择排序 首先从原始数组中 选择最小的1个数据,将其和位于第1个位置的数据交换。接着从剩下的n-1个数据中选择次小的1个元素,将其和第2个位置的数据交换然后…...
UE5学习记录part14
第17节 enemy behavior 173 making enemies move: AI Pawn Navigation 按P查看体积 So its very important that our nav mesh bounds volume encompasses all of the area that wed like our 因此,我们的导航网格边界体积必须包含我们希望 AI to navigate in and …...
树莓派llama.cpp部署DeepSeek-R1-Distill-Qwen-1.5B
树莓派的性能太低了,我们需要对模型进行量化才能使用,所以现在的方案是,在windows上将模型格式和量化处理好,然后再将模型文件传输到树莓派上。而完成上面的操作就需要部署llama.cpp。 三、环境的准备 这里要求大家准备…...
Llama 4 最新发布模型分析
1. 引言 在2025年4月5日,Meta公司正式发布了最新一代大型语言模型Llama 4系列,包括Llama 4 Scout和Llama 4 Maverick。该模型添加了多模态支持,能够处理文本、图像、音频和视频数据,实现更加充分的AI功能应用。 2. 技术特性 2.1…...
Llama 4 家族:原生多模态 AI 创新的新时代开启
0 要点总结 Meta发布 Llama 4 系列的首批模型,帮用户打造更个性化多模态体验Llama 4 Scout 是有 170 亿激活参数、16 个专家模块的模型,同类中全球最强多模态模型,性能超越以往所有 Llama 系列模型,能在一张 NVIDIA H100 GPU 上运…...
如何让eDrawings html文件在Chrome浏览器上展示——allWebPlugin中间件扩展
应用背景 eDrawing html文件是仅可在 Internet Explorer 5.5 和以上版本中查阅,由于IE浏览器限制,目前使用非常不方便,为了不修改html的请提下,在chrome浏览器查阅原本html文件,可使用安装allWebPlugin中间件扩展。 a…...
【内网安全】DHCP 饿死攻击和防护
正常情况:PC2可以正常获取到DHCP SERVER分别的IP地址查看DHCP SERCER 的ip pool地址池可以看到分配了一个地址、Total 253个 Used 1个 使用kali工具进行模拟攻击 进行DHCP DISCOVER攻击 此时查看DHCP SERVER d大量的抓包:大量的DHCP Discover包 此时模…...
keepalived高可用介绍
keepalived 是 Linux 一个轻量级的高可用解决方案,提供了心跳检测和资源接管、检测集群中的系统服务,在集群节点间转移共享IP 地址的所有者等。 工作原理 keepalived 通过 VRRP(virtual router redundancy protocol)虚拟路由冗余…...
基于大模型的脑梗死全流程诊疗技术方案
目录 《基于大模型的脑梗死全流程诊疗技术方案》一、核心算法实现1. 多模态特征融合算法(术前规划)2. 术中实时预警算法二、系统模块设计1. 术前规划系统流程图2. 术中实时监控系统架构三、技术验证方案1. 模型验证矩阵2. 实验验证设计四、关键技术创新点五、工程实现规范1. …...
ngx_timezone_update
定义在 src\os\unix\ngx_time.c void ngx_timezone_update(void) { #if (NGX_FREEBSD)if (getenv("TZ")) {return;}putenv("TZUTC");tzset();unsetenv("TZ");tzset();#elif (NGX_LINUX)time_t s;struct tm *t;char buf[4];s tim…...
Redis 热key问题怎么解决?
Redis 热 Key 问题分析与解决方案 热 Key(Hot Key)是指被高频访问的某个或多个 Key,导致单个 Redis 节点负载过高,可能引发性能瓶颈甚至服务崩溃。以下是常见原因及解决方案: 1. 热 Key 的常见原因 突发流量:如明星八卦、秒杀商品、热门直播等场景。缓存设计不合理:如全…...
JavaWeb(楠)
JavaWeb21-1:Java Web开发的地位、Tomcat服务器 Java Web开发概述 主流地位:Java可用于移动端、桌面应用、机器学习等多个领域,但在Web开发领域优势显著,是Java最主流的研发方向。市场上95%以上的Web端开发都使用Java,…...
批量将 JSON 转换为 Excel/思维导入等其它格式
json 格式相信对大家来说都不陌生,这是一种轻量级的结构化数据,可以对对象进行描述。json 格式也是一种普通的文本文件格式,用记事本就能够打开编辑 json 格式的文件,可以很方便的转换为其他格式。今天要给大家介绍的就是如何将 j…...
C# Winform 入门(13)之通过WebServer查询天气预报
展示 控件 添加WebServer 右键项目> 添加引用> 添加服务引用 天气预报URL: WeatherWebService Web 服务WeatherWebService Web 服务http://www.webxml.com.cn/WebServices/WeatherWebService.asmx 查询按钮实现 private void btn_Inquiry_Click(object sender, EventA…...