自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(42)
  • 收藏
  • 关注

原创 Ubuntu+Laravel+MQ+Supervisor队列系统搭建流程

2、进入laravel项目,安装MQ队列驱动。8、重载 Supervisor 配置并启动。5、安装 Supervisor。

2025-02-13 13:40:43 370

原创 PHP完整生命周期流程图

注册全局常量、类、函数到CG(function_table):PHP进程启动时(如php-fpm启动、CLI脚本启动)创建超全局变量数组(symbol_table)释放请求级内存池(emalloc分配的内存)加载所有扩展(扩展的MINIT方法被调用)初始化执行器全局变量(EG宏管理的结构体):请求级内存池(request pool)重置垃圾回收器状态(gc_status):每个请求开始时(如HTTP请求到达):进程终止时(如php-fpm关闭):常驻内存(直到进程结束):生成AST(抽象语法树)

2025-02-04 16:06:45 743

原创 mysql 索引结构为什么使用B+树结构?

B+ 树索引结构作为核心,展示了 B+ 树的优点和特性。 树的平衡性:B+ 树保持平衡,查询时深度较低,减少了查找的层级,提升查询效率。 磁盘存储优化:通过将每个节点存储多个键值对,B+ 树能够减少磁盘 I/O 次数。 顺序遍历支持:B+ 树的叶子节点通过链表连接,支持高效的范围查询。 插入/删除高效:B+ 树的插入和删除操作会保持树的平衡,通过分裂或合并节点来进行调整。 多列查询支持:B+ 树支持复合索引,可以提升多列查询的性能。 比哈希索引的优势:B+ 树不仅支持等值查询,也能高效处理范围

2025-01-03 16:52:15 234

原创 mysql主从实现过程

主库(Master):从库(Slave):从库应用 Binlog:

2025-01-03 16:34:06 216

原创 mysql主从集群同步延迟问题怎么解决

主库的写入性能直接影响到同步延迟,因为从库必须等待主库的事务提交之后才能同步数据。优化主库的写入性能有助于减少延迟。从库的读取性能决定了从库应用的查询响应速度。如果从库的查询响应速度较慢,可能导致延迟积累。

2025-01-02 15:55:06 730

原创 对称加密和非对称加密的区别是什么

非对称加密通常用于需要安全通信的场景,例如 HTTPS、数字签名等。对称加密使用相同的密钥进行加密和解密,密钥的安全性至关重要。扩展实现非对称加密,以下以 RSA 为例。

2025-01-02 15:18:53 452

原创 vue中的key有什么作用? (key的内部原理)

虚拟DOM中key的作用:key是虚拟DOM对象的标识,当状态中的数据发生变化时,Vue会根据[新数据] 生成[新的虚拟DOM]随后Vue进行[新虚拟DOM] 与[旧虚拟DOM] 的差异比较 对比规则: 旧虚拟DOM中找到了与新虚拟DOM相同的key:o.若虚拟DOM中内容没变,直接使用之前的真实DOM!e.若虚拟DOM中内容变了,则生成新的真实DOM,随后替换掉页面中之前的真实DOM。 旧虚拟DOM中未找到与新虚拟DOM相同的key创建新的真实DOM,随后渲染到到页面。 用index作为

2024-12-29 15:07:30 190

原创 vue中普通函数和箭头函数的区别

在 Vue 中,如果你需要访问 Vue 实例中的数据和方法,使用普通函数。这确保了this能正确指向 Vue 实例。箭头函数适用于事件处理器、回调函数等场景,但要避免在 Vue 的methods中使用,因为this的绑定行为不同。

2024-12-28 22:53:32 153

原创 Apache Benchmark压测工具

ab -n 100 -c 15 http://yourserver/test.php1.-n 100含义:表示进行100 次请求。 解释:这是指定的总请求数,也就是在测试过程中,ab将向指定的 URL 发起 100 个 HTTP 请求。这些请求会依次发起,直到达到 100 个请求为止。2.-c 15含义:表示15 个并发请求。 解释:这是并发请求数,也就是在同一时间内同时发起的 HTTP 请求数量。-c 15表示同时发起 15 个请求,直到ab完成 100 个请求。这个参数

2024-12-01 15:32:52 136

原创 PHP-FPM进程管理参数详解

定义了 PHP-FPM 如何管理进程池的进程数量。

2024-12-01 14:48:58 331

原创 mysql表有1000多万的数据,如何利用es提升查询效率具体的步骤

导入数据:通过批量 API 将数据从 MySQL 或其他数据库导入 Elasticsearch。优化索引设计:合理设置字段类型、分片和副本,以提高查询效率。配置 Elasticsearch:调整内存、启用查询缓存、增加 JVM 堆内存等。优化查询方式:使用过滤器、分页查询、聚合查询等方式来提高查询效率。定期优化:定期执行合并和重新索引操作,保持查询性能。

2024-11-16 05:40:56 1753

原创 TP5 DB对数据表的增删改如何实时同步到Elasticsearch中

数据库触发器消息队列:通过数据库触发器捕获数据变化,并将操作记录通过消息队列或临时表传递到应用层,最后由应用同步到 Elasticsearch。事件驱动(应用层):通过在模型类或应用层捕获增、删、改操作,直接将数据同步到 Elasticsearch。定时同步:通过定时任务从数据库读取变化的数据,并同步到 Elasticsearch。

2024-11-16 05:16:16 489

原创 Elasticsearch数据存储概念

Elasticsearch 数据存储在磁盘上,并使用磁盘存储所有索引和文档数据。为了提高性能,Elasticsearch 会利用内存来缓存索引数据、查询结果和其他操作,以减少磁盘 I/O 的开销。Elasticsearch 通过内存缓存和磁盘持久化的结合,提供高效的查询和索引性能。

2024-11-16 04:33:29 2387

原创 ThinkPHP6安装Elasticsearch

在你的 PHP 代码中,你需要先配置 Elasticsearch 客户端连接到你的 Elasticsearch 集群。首先,你需要安装官方的 Elasticsearch PHP 客户端。

2024-11-16 04:08:13 252

原创 Tp6框架 a=1 and (b=2 or c=3)用DB的写法

【代码】Tp6框架 a=1 and (b=2 or c=3)用DB的写法。

2024-11-14 21:51:50 142

原创 mack系统用docker 搭建一个PHP Fastadmin项目

2. 编写Docker Compose文件创建一个名为 docker-compose.yml 的文件,并添加以下内容: 3. 创建映射目录在项目目录下创建以下子目录: 4. 配置Nginx在 nginx/conf.d 目录下创建一个名为 default.conf 的文件,并添加以下内容: 5. 配置Dockerfile在 项目目录下创建一个名为 Dockerfile 的文件,并添加以下内容: 将Fastadmin项目代码复制到www/demo1

2024-11-14 13:02:21 1612

原创 TCP、UDP、WebSocket的区别

TCP:可靠性高、适合传输完整数据的场景,因连接和确认机制开销较大,不适合实时性要求高的场景。UDP:效率高、适合对实时性要求高的数据传输,但不保证数据的顺序和完整性。WebSocket:基于TCP的持久连接,支持实时的双向通信,适合需要频繁交互的应用,如聊天、通知等。

2024-11-13 00:53:25 903

原创 进程、线程、协程的区别

是一种用户态的轻量级线程,它允许在单个线程中切换执行不同的任务,而不需要线程或进程的开销。协程通过在特定位置挂起和恢复执行来实现并发。是操作系统中独立的执行单元,每个进程都有自己的内存空间和资源。在PHP中,进程通常用于处理并发任务,比如在命令行中执行多个任务或使用消息队列。是进程中的一个执行单元,多个线程共享同一个进程的内存和资源。相比于进程,线程的创建和销毁成本较低,因为它们共享内存空间。扩展引入了协程,PHP 8.1 开始原生支持协程。

2024-11-13 00:32:28 431

原创 容器、服务器提供者、依赖注入概念

容器:保存和提供服务的地方。服务提供者:告诉容器应该提供哪些服务,以及如何创建这些服务。依赖注入:让一个类通过外部(通常是容器)来获取它需要的其他类,而不是自己创建。

2024-11-13 00:22:40 318

原创 Redis执行原理

Redis 是一个基于内存的数据库,它将数据存储在内存中并周期性地将数据同步到磁盘,这种模式极大地提高了数据读写速度。,如字符串(String)、列表(List)、集合(Set)、有序集合(Sorted Set)、哈希(Hash)等,每种数据结构都进行了特别优化,使其在内存中操作非常高效。由于单线程执行,Redis 避免了多线程常见的锁竞争问题,减少了上下文切换的开销,从而提升了性能。Redis 的核心操作是基于单线程的事件循环实现的,使用。来管理 I/O 事件。Redis 内部实现了多种。

2024-11-13 00:09:08 305

原创 mysql回表和覆盖索引

"回表"指的是查询过程在使用索引获取一部分信息后,还需要到主表(数据表)中再次查找数据。"覆盖索引"指的是索引中已经包含了查询需要的所有字段,所以不需要回表。即可,不需要回表查询。这种查询方式就称为覆盖索引查询。不在这个索引中,那么MySQL会先通过索引定位到。可以直接从索引中获取所有数据,大大提高查询效率。的记录位置,再回到主表中找到完整的行数据以获取。的发生是因为索引中并不包含所有需要的字段。字段,那么查询只需要在索引中查找。

2024-11-13 00:02:16 426

原创 RESTful API中,常见的请求方式

用途不同:幂等性:URL结构:

2024-11-12 17:02:37 322

原创 PHP 对接支付宝支付流程

【代码】PHP 对接支付宝支付流程。

2024-11-05 01:54:01 621

原创 PHP 处理商城抢购高并发一般涉及到的技术栈

【代码】【无标题】

2024-11-05 01:12:23 955

原创 php swoole 协程概念

在 Swoole 中,每个go都是一个独立的协程,协程之间是并发运行的。虽然foreach是顺序执行的,但每次循环内部的go启动的协程会立即开始执行。最终效果是所有协程几乎同时处理,foreach只是负责启动这些协程的顺序,并不影响协程的并发性。

2024-11-05 00:48:14 251

原创 redis、kafka、RabbitMQ对比

2024-11-05 00:34:27 123

原创 php-rdkafka 进行 Kafka 操作的常用方法总结表

方法 说明 示例代码 produce 向指定分区发送消息,可以指定消息内容和可选的消息键。 $topic->produce(RD_KAFKA_PARTITION_UA, 0, "Hello"); poll 轮询生产者队列,确保消息成功发送,通常在每次发送后调用。 $producer->poll(0); flush 阻塞并等待队列清空,确保所有消息都发送成功,通常在程序结束前调用。 $producer->flush(1000);

2024-11-05 00:18:45 300

原创 HTTP常见的报错状态码及其含义:

2024-11-01 11:05:53 137

原创 mysql事物隔离级别

说明脏读:一个事务读取了另一个未提交事务的数据。 不可重复读:一个事务在读取同一行数据时,另一个事务可能修改了该行数据。 幻读:在同一个事务中,读取到的行数在两次查询之间发生变化。

2024-11-01 08:43:44 157

原创 PHP传值传引用的区别

【代码】PHP传值传引用的区别。

2024-10-31 22:08:31 168

原创 nginx负载均衡配置方式

可以为不同的服务器设置不同的权重,控制请求的分配比例。根据请求的 IP 地址将请求分发到特定的后端服务器。默认的负载均衡方式,按顺序将请求分发给后端服务器。将请求分发给当前连接数最少的后端服务器。

2024-10-31 21:18:36 217

原创 mysql索引失效的场景

2024-10-31 21:01:14 118

原创 git和svn的区别

**SVN**:SVN的分支管理比较重,分支本质上是服务器上代码库的副本,创建和管理分支的开销较大。- **SVN**:一般是“集中式工作流”,开发者在本地做完修改后直接提交到中央仓库,每个人的工作依赖于对中央仓库的访问,比较适合需要严格控制版本的企业项目。- **Git**:Git的分支管理非常轻量,创建、删除和切换分支操作快速、方便,适合频繁使用分支进行开发、测试和合并。- **SVN**:SVN虽然支持合并,但处理分支和合并的效率和便捷性不如Git,容易在多人协作时发生冲突。

2024-10-31 20:44:58 151

原创 聚簇索引(Clustered Index)和非聚簇索引(Non-Clustered Index)的区别

**数据存储**:非聚簇索引的叶子节点不存储数据,而是包含指向数据行的指针(如行ID或主键ID)。- **二次查找**:由于索引和数据分开存储,非聚簇索引查询需要先查找到指针,再进行数据查找(回表)。- **访问效率**:查询主键时,聚簇索引速度很快,因为数据和索引在一起,无需再次查找。- **数据存储**:聚簇索引将数据行直接存储在叶子节点中,因此索引本身包含了数据。- **多索引**:每个表可以有多个非聚簇索引,适用于不同查询需求。- **缺点**:插入和更新的代价较高,因为表的数据顺序需要维持。

2024-10-31 20:37:53 366

原创 在 MySQL 中,`INT(11)` 的含义如下:

2. **`(11)`**:括号中的数字表示**显示宽度**,与存储的数值范围无关。- 例如,如果你插入数字 `123` 到一个 `INT(11) ZEROFILL` 列中,MySQL 可能会将其显示为 `000000000123`。1. **`INT`**:表示整数数据类型,用于存储整数。- **有符号(Signed)**:`-2,147,483,648` 到 `2,147,483,647`- **无符号(Unsigned)**:`0` 到 `4,294,967,295`

2024-10-31 20:33:36 461

原创 PHP中的闭包(Closures)和匿名函数(Anonymous Functions)

闭包和匿名函数是PHP 5.3引入的特性。匿名函数是没有名称的函数,可以在变量中存储或作为参数传递。闭包是可以捕获其所在环境中变量的匿名函数。

2024-10-31 20:30:58 91

原创 解释依赖注入的概念及其在 PHP 中的优势。

依赖注入是一种设计模式,将对象的依赖通过构造函数、方法参数或属性注入,提高代码的可测试性和可维护性。它解耦了对象的创建和使用,促进松耦合设计。

2024-10-31 20:28:57 89

原创 描述PHP中命名空间及作用

命名空间(Namespace)是用于 PHP 中类、函数、常量等冲突的一种命名空间。开发者可以将代码组织到不同的空间中,以避免名称冲突,并提高代码的可读性和可维护性。

2024-10-31 20:19:37 76

原创 crontab 是 Unix 和 Unix-like 操作系统(如 Linux)中用于设置周期性被执行的任务的工具。crontab 表达式定义了这些任务何时应该运行。

一个 crontab 表达式由五个或六个字段组成,字段之间由空格分隔。这些字段定义了分钟、小时、日期、月份和星期几。在某些系统中,还有一个可选的秒字段。

2024-10-31 20:10:16 182

原创 解决PHP内存溢出的方法通常包括以下几个方面:

php复制代码$array = array("apple", "banana", "orange", "raspberry", "strawberry");php复制代码$array = array("apple", "banana", "orange", "raspberry", "strawberry");php复制代码$array = array("apple", "banana", "orange", "raspberry", "strawberry");

2024-10-31 20:00:45 707

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除