Nginx
Nginx Nginx 是一款高效的 Web 服务器和反向代理服务器,常用于负载均衡、HTTP 缓存、静态资源托管等任务。它主要使用配置文件 + nginx 命令的方式进行工作。 配置文件: /etc/nginx/nginx.conf、/etc/nginx/conf.d/。 /usr/local/nginx/nginx.conf、/usr/local/nginx/conf/。 日志文件: /var/log/nginx/access.log、/var/log/nginx/error.log。 常用命令¶ 启动¶ sudo nginx [-c /path/to/nginx.conf] 停止¶ sudo nginx -s stop 重加载¶ sudo nginx -s reload 检查配置¶ sudo nginx -t 退出¶ sudo nginx -s quit 常规配置¶ 静态文件¶ 用 Nginx 来服务静态文件,如 HTML、CSS、JavaScript 和图片文件。 server { listen 80; # 监听80端口 s...
Docker
Docker 介绍¶ Docker是开发,运行和部署应用程序的开放管理平台。 开发人员能利用Docker开发和运行应用程序。 运维人员能利用Docker部署和管理应用程序。 可以简单理解为:使用主机内核的虚拟机,不需要和虚拟机一样需要自己独立的操作系统,因此比虚拟机更轻量。 作用及解决¶ Docker可以将应用程序和基础架构分开,便于程序和软件的交付。 借助Docker可以像管理应用程序一样管理基础架构。 借助Docker可以快速进行传输、测试和部署,可以缩短代码的编写和在生产环境运行之间的时间差。 Docker主要解决的问题: 保证程序运行环境的一致性。 降低配置开发环境和生产环境的复杂度和成本。 实现程序的快速部署和开发。 Docker引擎¶ Docker Engine是一个包含以下组件的客户端-服务端(C/S)应用程序。 服务端:一个长时间运行的守护进程(Docker Daemon)。 Rest API:一套用于与Docker Daemon通信并指示其执行操作的接口。 客户端:命令行接口CLI(Command Line Interface)。 CLI...
Linux
Linux 介绍¶ Linux 是一个开源的操作系统内核,最初由芬兰程序员 Linus Torvalds 于 1991 年开发。与传统的操作系统不同,Linux 是由社区共同开发和维护的,并且大多数版本是免费的。它广泛用于服务器、桌面、嵌入式设备和移动设备等多个领域。 核心概念¶ 内核(Kernel) :Linux 本质上是一个内核,负责与硬件交互,管理系统资源(如 CPU、内存、硬盘等),并提供应用程序与硬件之间的接口。Linux 内核是由 Linus Torvalds 主导开发的,具有高度的可扩展性、稳定性和安全性。 发行版(Distribution) :基于 Linux 内核的操作系统通常被称为 Linux 发行版。一个发行版包括了内核以及一系列用于管理硬件、文件系统、网络、用户等的工具和应用程序。常见的 Linux 发行版包括 Ubuntu、Debian、CentOS、Red Hat Enterprise Linux (RHEL) 、Fedora、Arch Linux 等。 文件系统¶ Linux 的文件系统遵循统一的目录结构,所有的文件和设备都作为“文件”进行处理。...
MySQL高级
MySQL高级 触发器¶ 理论¶ 组成: 触发事件:指定触发器在哪种操作下触发。可以是 INSERT、UPDATE、DELETE 操作。 触发时间:指定触发器在操作之前或之后执行,使用 BEFORE 或 AFTER。 触发动作:触发器的具体 SQL 代码,即在触发时要执行的操作。 限制: 每个表最多只能为 INSERT、UPDATE、DELETE 操作各定义一个 BEFORE 和 AFTER 触发器。 触发器不能直接调用事务控制语句(如 COMMIT 和 ROLLBACK),因为触发器在事务内部执行。 MySQL 不支持表上级联触发(递归触发),即触发器中不应再对该表进行操作,以免形成循环触发。 作用: 自动化数据验证和清理。 数据库事件记录(如日志表记录)。 实现复杂的数据一致性和约束检查。 操作¶ 创建¶ CREATE TRIGGER 触发器名{BEFORE | AFTER} {INSERT | UPDATE | DELETE}ON 表名FOR EACH ROW触发器执行的操作SQL; OLD...
MySQL基础
MySQL基础 简介¶ MySQL 是一个开源的关系型数据库管理系统(RDBMS),由瑞典公司MySQL AB开发,后来被Sun Microsystems收购,最终成为Oracle的一部分。它是基于SQL(Structured Query Language,结构化查询语言)来进行数据存储和管理的。MySQL广泛用于Web应用程序、企业级应用程序和大数据处理场景,支持多种操作系统,包括Linux、Windows和macOS。 MySQL是一种基于客户端-服务器架构的数据库系统,其主要功能是提供数据存储、数据查询和事务处理能力。它支持ACID(原子性、一致性、隔离性、持久性)事务,并具备高效、稳定的性能。 存储引擎¶ InnoDB 更适合需要高并发、事务支持和外键约束的场景。 MyISAM 更适合以读为主、对事务要求不高的场景,比如数据仓库和分析系统。 InnoDB¶ 特点: 支持事务:InnoDB 是一个支持ACID事务的引擎,通过 COMMIT、ROLLBACK 和 SAVEPOINT 操作来确保数据完整性。 外键约束:支持外键,能够维护表之间的引用完整性,防止无效的...
Vim
Vim Vim编辑器,顾名思义就是编辑文本的输入工具,现在市面上的主流的UI编辑器有VScode、Edit、Sublime Text等等,这些都拥有可视化的界面,可以让文本编辑更快更方便。 但是,这些编辑器一般是不能直接运行在服务器上的,也就是说,我们不能直接在服务器上使用这些编辑器进行开发和修改,一般我们也不那么做。我们一般把项目上传到服务器上后,需要进行部署、调试和调优等操作时,需要修改一下配置或者相关代码,如果仅仅依赖UI编辑器,那么我们就会在服务器和本机之间反复上传和下载,大大降低了开发效率,而服务器上也是有文本编辑器的,那就是Vim。 Vim可以让我们很方便的在服务器上直接进行配置和相关代码的修改,减少了文件传输的繁琐操作,当然,这只是其中的一个小作用,至于更大的作用,取决于你在文本编辑这一方面的需求。 模式介绍¶ vim中共有8种模式,分别如下: 普通模式(Normal Mode) :这是 Vim 的默认模式。在普通模式下,你可以移动光标、复制、粘贴、删除、查找文本等,但不能直接输入文本。 插入模式(Insert Mode) :在插入模式下,你可以直接输入文本。你可...
Git
Git 介绍¶ Git是一种代码托管技术。理解成是一个开源的分布式版本控制系统,可以敏捷高效地处理任何或小或大的项目。 历史¶ 林纳斯.托瓦兹在1991 年创建了开源的Linux,随着社区的不断壮大,代码需要人工合并,十分麻烦。 于是他花费两周的时间用C语言编写了一个分布式版本控制系统。 版本控制¶ 版本控制(Version Control)是一种用于跟踪和管理文件或代码变化的系统。 它允许多人协同工作,并且可以在不同版本之间进行有效的比较、恢复和合并。 版本控制系统记录文件的修改历史,使得用户可以回溯到先前的版本,并在需要时恢复到特定的状态。 主要优势和功能包括: 版本追踪: 版本控制系统可以追踪文件的每一次修改,包括添加、删除、修改等操作。这使得用户可以了解文件的变化历史。 协同工作: 多人协同工作时,版本控制系统可以协调各人对同一文件的修改,防止冲突,并能够合并不同版本的修改。 回滚和恢复: 如果出现错误或需要回到之前的某个稳定状态,版本控制系统允许用户轻松地回滚到先前的版本。 分支和合并: 版本控制系统允许创建分支,这是一种并行开发的方式,每个分支都可以独立进行...
Beautifulsoup
Beautifulsoup Beautiful Soup4 是一个可以从HTML或XML文件中提取数据的Python库。 它能够通过你喜欢的转换器实现惯用的文档导航,查找,修改文档的方式。Beautiful Soup会帮你节省数小时甚至数天的工作时间。 可以配合 Requests 第三方库实现简单的Web爬虫。 默认使用Python解析器,但是我们可以使用更加强大的 lxml 解析器。 安装¶ pip install beautifulsoup4 lxml 使用¶ 常见解析器:lxml、html.parser、 html5lib。 HTML是由元素构成,元素包含许多的属性以及文本内容,我们可以对这些进行增删改查。 from bs4 import BeautifulSoup# 创建 bs4 对象soup = BeautifulSoup(html, 'lxml') 查找¶ 常用的元素查找方法,返回 PageElement 对象。 直接查找 # 查找 div 标签soup.div# 查找 title 标签soup.title 条件查找 # 查找第一个...
Requests
Requests Requests 是一个用于发送 HTTP 请求的 Python 第三方库,专注于简洁性和易用性。它封装了底层的 http.client 模块,简化了 HTTP 请求操作,使开发者能以更直观的方式处理网络通信。 理论基础¶ API(应用程序接口)是不同软件系统之间交互的桥梁,允许不同的系统交换数据和服务。 API 自动化即接口自动化,主要针对前后端分离架构的项目。 前端和后端在开发和部署上是独立的,彼此通过 API 进行通信。 前端:主要负责用户界面(UI)和用户体验(UX),通常使用框架如 Vue、React、Angular 等进行开发,直接与后端通过 API 进行数据交互。 后端:负责处理业务逻辑、数据存储、身份验证等,通常使用如 Node.js、Spring Boot、Django 等后端技术,提供 RESTful 或 GraphQL API 给前端调用。 这种模式的好处包括: 前端和后端可以独立开发、部署和扩展。 前端可以选择不同的技术栈,而不依赖于后端的具体实现。 后端通过 API 提供通用的数据服务,方便与不同的前端应用进行交互。 而 AP...
JMeter
JMeter 介绍¶ Apache JMeter 是一个开源的性能测试工具,最初用于测试 Web 应用的负载性能。随着功能的不断扩展,JMeter 现在支持多种协议和技术,是性能测试、负载测试和功能测试的利器。 基于 Java 开发,可以在 Windows、Linux、macOS 等系统上运行。 用途: 性能测试: 模拟多个用户并发访问系统,测试系统在高负载下的性能。 负载测试: 测试服务器的吞吐量和响应时间,发现性能瓶颈。 压力测试: 模拟超出系统承受能力的访问,观察系统在压力下的行为。 功能测试: 测试接口、API 是否按照预期运行。 回归测试: 自动化测试脚本,用于检测功能更新后的影响。 协议测试: 支持 HTTP、FTP、TCP、MQ 等协议,适用于多种测试需求。 架构: 线程组(Thread Group): 定义并发用户数、启动时间间隔和循环次数。 取样器(Sampler): 用于发起请求,比如 HTTP 请求、数据库查询等。 配置元件(Config Element): 提供测试数据或配置,比如 CSV 数据集、HTTP Header 等。 逻辑控制器(Logic...








