自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 PHP面试题:TCP/UDP/HTTP的区别和联系

一、TPC/IP协议是传输层协议,主要解决数据如何在网络中传输,而HTTP是应用层协议,主要解决如何包装数据。关于TCP/IP和HTTP协议的关系,网络有一段比较容易理解的介绍:“我们在传输数据时,可以只使用(传输层)TCP/IP协议,但是那样的话,如果没有应用层,便无法识别数据内容,如果想要使传输的数据有意义,则必须使用到应用层协议,应用层协议有很多,比如HTTP、FTP、TELNET等,也可以自己定义应用层协议。WEB使用HTTP协议作应用层协议,以封装HTTP 文本信息,然后使用TCP/IP做传输层

2020-09-11 16:19:04 1549 2

原创 你知道MySQL是如何处理千万级数据的吗?

mysql 分表思路一张一亿的订单表,可以分成五张表,这样每张表就只有两千万数据,分担了原来一张表的压力,分表需要根据某个条件进行分,这里可以根据地区来分表,需要一个中间件来控制到底是去哪张表去找到自己想要的数据。**中间件:**根据主表的自增 id 作为中间件(什么样的字段适合做中间件?要具备唯一性)**怎么分发?**主表插入之后返回一个 id,根据这个 id 和表的数量进行取模,余数是几就往哪张表中插入数据。**注意:**子表中的 id 要与主表的 id 保持一致以后只有插入操作会用到主表,

2020-08-10 21:10:11 15331 19

原创 20道PHP基础面试题 带你巩固一波地基(附答案)

1、什么事面向对象?主要特征是什么?面向对象是程序的一种设计方式,它利于提高程序的重用性,使程序结构更加清晰。主要特征:封装、继承、多态。2、SESSION 与 COOKIE的区别是什么,请从协议,产生的原因与作用说明?http无状态协议,不能区分用户是否是从同一个网站上来的,同一个用户请求不同的页面不能看做是同一个用户。SESSION存储在服务器端,COOKIE保存在客户端。Session比较安全,cookie用某些手段可以修改,不安全。Session依赖于cookie进行传递。禁用cookie

2021-05-14 20:18:36 356

原创 关于 PHP 8.1 的 Fiber RFC

最新的 PHP 8.1 增加了一个 Fiber 的提案,最近讨论的比较多。有不少好事者拿来说事儿,说是 “Fiber 进入内核之后,Swoole 的使用者就大幅减少“实际上 Fiber 扩展进入内核后,由于它是一个非常底层的 API ,并不是直接可以使用的技术,不会对 Swoole 产生影响。真正和 Swoole 竞争的是应该是 Amphp 、ReactPHP 。Fiber 反而对 Swoole 是有好处的,PHP 内核开发者维护了协程切换的全局状态列表,Swoole PHPCoroutine 这部分的代

2021-05-12 21:08:09 2223 7

原创 PHP运行原理和机制

虽然说 PHP 学起来相对简单,但是要精通也不是一件简单的事,我们除了要知道怎么使用之外,还得知道它的工作原理。PHP 是一种适用于 Web 开发的脚本语言,可以将它看做是一个用C语言实现的包含大量组件的软件框架。了解 PHP 的底层实现,有助于我们更好的运用它,优化我们程序的性能,从而实现更加强大的功能1) Zend 引擎(核心)Zend 引擎整体用C语言实现,是 PHP 的内核部分,它负责将 PHP 代码翻译(词法、语法解析等一系列编译过程)为可执行的 opcode 操作码,并实现相应的处理方法

2021-05-11 20:45:59 826 23

原创 从原理分析PHP性能

从原理分析PHP性能从原理分析PHP的性能,主要从以下几个方面:内存管理、变量、函数、运行机制、网络模型来进行分析。2.1内存管理类似Nginx的内存管理方式,PHP在内部也是基于内存池,并且引入内存池的生命周期概念。在内存池方面,PHP对PHP脚本和扩展的所有内存相关操作都进行了托管。对大内存和小内存的管理采用了不同的实现方式和优化。在内存分配和回收的生命周期内,PHP采用一次初始化申请+动态扩容+内存标识回收机制,并且在每次请求结束后直接对内存池进行重新mask。2.2变量总所周知,PHP是一

2021-05-10 20:18:46 458 4

原创 分享一波腾讯PHP面试题

1.php 的垃圾回收机制PHP 可以自动进行内存管理,清除不需要的对象。PHP 使用了引用计数 (reference counting) GC 机制。每个对象都内含一个引用计数器 refcount,每个 reference 连接到对象,计数器加 1。当 reference 离开生存空间或被设为 NULL,计数器减 1。当某个对象的引用计数器为零时,PHP 知道你将不再需要使用这个对象,释放其所占的内存空间。2. session 与 cookie 的区别和联系区别:1.存放位置:Session 保

2021-04-27 21:02:15 623 9

原创 11个提问频率最高的PHP面试题

1.请用最简单的语言告诉我PHP是什么?回答:PHP全称:Hypertext Preprocessor,是一种用来开发动态网站的服务器脚本语言。2.什么是MVC?回答:MVC由Model(模型), View(视图)和Controller(控制器)组成,PHP MVC可以更高效地管理好3个不同层的PHP代码。Model:数据信息存取层。View:view层负责将应用的数据以特定的方式展现在界面上。Controller:通常控制器负责从视图读取数据,控制用户输入,并向模型发送数据。3.问题:在

2021-04-26 20:25:41 116

原创 php该怎么入门?

不仅是PHP,学习任何编程语言,我觉得,都要浅尝辄止。什么意思呢?就是说,分阶段学习。这个方面,我非常推荐一个在线教程网站:菜鸟教程。菜鸟教程PHP学习第一步可以先学这一部分。划线的部分,可以直接跳过,后面再说。第二步学会php如何嵌入页面,学会页面如何和php进行数据交互。第三步了解更高级的php知识,记住,不要强行理解。能跟着案例做实验的,就做实验,不能的就跳过。第四步数据库操作,这是后端必知必会的,也了解下。第五步到了这一步,开始写案例!写案例!写案例!不要再往深处

2021-04-24 20:02:15 100 2

原创 一个高级PHP工程师所应该具备的

初次接触PHP,就为他的美所折服,于是一发不可收拾。很多面试,很多人员能力要求都有“PHP高级工程师的字眼”,如果您真心喜欢PHP,并且您刚起步,那么我简单说说一个PHP高级工程师所应该具备的,希望给初级或已经达到中级的PHP工程师一些帮助。平静的心态和所有程序员一样,要写一手好的程序,没有好的心态是不行的。遇事不可急躁,不可轻言放弃。在程序开发过程中,尤其是初中级程序员,写出的程序或架构会遇到很多问题,其中一些问题比较弱智,而有些问题根本没有碰到过,于是不可太过急躁,应该逐个排查问题的最初源泉,

2021-04-23 20:35:29 115

原创 PHP 8.1 新特性

PHP 8.1目前正在积极开发中,可能会在2021年11月末左右发布。我们已经了解了一些函数,更改和不赞成使用的内容,因此让我们逐一介绍它们。New features与每个版本一样,PHP 8.1添加了一些不错的新函数。请记住,该列表将在一年中增长。我还将列出尚未实现的函数,但是很有可能最终使用该语言。我将确保始终标记这些函数。用字符串键解包数组 RFCPHP 7.4 中已经允许数组拆包,但它仅适用于数字键。之前不支持字符串键的原因是因为关于如何合并数组重复项没有任何共识。 RFC通过遵循 arr

2021-04-21 17:03:17 1080 3

原创 2020PHP面试题大全【数据库部分】

常见的关系型数据库管理系统产品有?答:Oracle、SQL Server、MySQL、Sybase、DB2、Access等。SQL语言包括哪几部分?每部分都有哪些操作关键字?答:SQL语言包括数据定义(DDL)、数据操纵(DML),数据控制(DCL)和数据查询(DQL)四个部分。数据定义:Create Table,Alter Table,Drop Table, Craete/Drop Index等数据操纵:Select ,insert,update,delete,数据控制:grant,revok

2021-04-20 15:51:33 127

原创 PHP语言到底还能活多久?

一句话,全球80%的WEB项目都是用PHP来开发的,你是想赶快学会这项目能真实满足大量市场项目的技能呢?你还是沉浸于每天比比叨的消极讨论呢?我想说,事实求是一些,语言只是工具,项目有需求,岗位有需要,我等为何不赶快学会它,难道生存不比瞎逼叨更重要吗?多学习一门语言,多掌握一门开发技能,多满足一个项目需求,让自己更强大,难道有问题吗?为什么全球80%的WEB项目闲的没事干却用PHP来开发呢,原因很简单:简单、实用、快捷、强大、包容、免费等等优点,是其他语言在这方面没有的优点。当然我没有说PHP没有缺点,

2021-04-19 20:42:55 344

原创 2021PHP面试题大全【面向对象部分】

1、什么是面向对象?(理解着回答)面向对象是一种思想,是基于面向过程而言的,就是说面向对象是将功能等通过对象来实现,将功能封装进对象之中,让对象去实现具体的细节。面向对象有三大特征:封装性、继承性、多态性。现在纯正的OO语言主要是 Java 和 C#,PHP、C++也支持OO,C是面向过程的。2、简述 private、 protected、 public修饰符的访问权限。private : 私有成员, 在类的内部才可以访问。protected : 保护成员,该类内部和继承类中可以访问。publ

2021-04-17 19:38:18 205

原创 这份PHP面试题,我只挑重点,且很详细

基础篇一.Get 和 POST 的区别表单提交中get和post方式的区别有5点1.get是从服务器上获取数据,post是向服务器传送数据。2.get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到。post是通过HTTPpost机制,将表单内各个字段与其内容放置在HTML HEADER内一起传送到ACTION属性所指的URL地址。用户看不到这个过程。3.对于get方式,服务器端用Request.QueryString获取变量的值,对于p

2021-04-16 19:33:49 224

原创 PHP核心技术面试题,跳槽必备!

1 oop是什么?答:oop是面向对象编程,面向对象编程是一种计算机编程架构,OOP 的一条基本原则是计算机程序是由单个能够起到子程序作用的单元或对象组合而成。OOP具有三大特点1、封装性:也称为信息隐藏,就是将一个类的使用和实现分开,只保留部分接口和方法与外部联系,或者说只公开了一些供开发人员使用的方法。于是开发人员只 需要关注这个类如何使用,而不用去关心其具体的实现过程,这样就能实现MVC分工合作,也能有效避免程序间相互依赖,实现代码模块间松藕合。2、继承性:就是子类自动继承其父级类中的属性和方

2021-04-15 20:57:36 144

原创 【PHP】用了这么久的Laravel框架,你分析过核心架构了没

Laravel最初的设计是为了面向MVC架构的,它可以满足如事件处理、用户身份验证等各种需求。另外它还有一个由管理数据库强力支持,用于管理模块化和可扩展性代码的软件包管理器。Laravel以其简洁、优雅的特性赢得了大家的广泛关注,无论是专家还是新手,在开发PHP项目的时候,都会第一时间的想到Laravel。本文我们将分析一下laravel框架的核心架构。主要包含的内容有:容器、应用框架、内核、契约、入口文件、服务提供者、路由、门面。laravel框架的架构模式(设计核心,laravel 框架是使用服务

2021-04-14 22:03:26 217 3

原创 面试官问PHP四大主流框架的优缺点,看这篇就够了!

本篇文章我们来讲讲PHP四大框架的优缺点都有哪些,让你们在开发中更好的去选择使用哪款PHP框架去完成项目,废话不多说,我们一起来看看吧!!ThinkPHPThinkPHP(FCS)是一个轻量级的中型框架,是从Java的Struts结构移植过来的中文PHP开发框架。它使用面向对象的开发结构和MVC模式,并且模拟实现了Struts的标签库,各方面都比较人性化,熟悉J2EE的开发人员相对比较容易上手,适合php框架初学者。 ThinkPHP的宗旨是简化开发、提高效率、易于扩展,其在对数据库的支持方面已经包括M

2021-04-14 13:52:59 115

原创 教你如何选择PHP框架!

PHP被广泛应用于重大的项目。例如Facebook就是使用PHP来维护和创建它们的内部系统的。WordPress使用PHP来驱动它的内部构件,得到的回报是超过59%的网站都在使用WordPress作为内容管理系统。目前,有82%的网站,它们的服务器端使用的编程语言就是 PHP。本文将介绍三种最流行的PHP框架:Symfony、Laravel和Yii。将通过三种框架的比较,帮助你选择哪种框架有可能最符合你的需求。为什么要选择PHP框架?为什么要使用框架而不是原生PHP来开发你的应用程序?下面是使用框架的

2021-04-13 13:58:33 147

原创 随着微服务(服务化)的盛行,php不会越来越衰颓,swoole撑起php的另一片天

随着微服务(服务化)的盛行,php不会越来越衰颓,swoole撑起php的另一片天现在的PHPer,已经有很多人都从渲染模板的工作中解脱出来了,得益于前端的快速发展、以及前后端分离的理念普及。微服务的发展,更是如虎添翼,在良好的微服务架构中,服务本身可以由多种语言进行编写,涉及业务逻辑变化较大的服务,舍PHP其谁Swoole的发展和完善,也促成了大量PHPer的自我提升,突破PHP原有的多种限制,当你有应用场景,自然还能感受到协程的魅力。首先说一下对swoole的理解:PHP样貌下的C程序。很多PH

2021-04-12 16:40:09 82

原创 PHP面试经常被问到的知识点汇总,对你非常有用

这些是 PHP 面试经常被问到的知识点做汇总。仅是针对性指出知识点,相应的还需自己查找相关资料系统学习。我希望各位能不仅仅了解是什么,还要了解为什么,以及背后的原理。如果你现在处于以下几种状态,本资料非常适合你:准备换工作,不知道从哪开始准备技术遇到瓶颈,不知道该学什么准备学 PHP,但不知道领域有多深基础篇了解大部分数组处理函数字符串处理函数 区别 mb_ 系列函数& 引用,结合案例分析== 与 === 区别isset 与 empty 区别

2021-02-28 21:21:00 436 3

原创 2021年最新PHP 面试、笔试题汇总(二)

二十一、语句include和require的区别require是无条件包含,也就是如果一个流程里加入require,无论条件成立与否都会先执行require,当文件不存在或者无法打开的时候,会提示错误,并且会终止程序执行include有返回值,而require没有(可能因为如此require的速度比include快),如果被包含的文件不存在的化,那么会提示一个错误,但是程序会继续执行下去注意:包含文件不存在或者语法错误的时候require是致命的,而include不是require_once,inc

2021-02-06 20:27:46 523 1

原创 2021年最新PHP 面试、笔试题汇总(一)

一、秒杀(商品超卖,高并发,同一用户多次抢购)后端:redis+队列redis队列实现,三个队列(库存队列,排队队列,抢购结果队列)用户先进入排队队列,先进先出,判断是否已经在抢购结果队列,如果在,则直接下一个,如果不在,将用户信息加入抢购结果队列,库存-1,等待数据库空闲时,将抢购结果写入数据库前端:面对高并发的抢购活动,前端常用的三板斧是【扩容】【静态化】【限流】扩容:加机器,这是最简单的方法,通过增加前端池的整体承载量来抗峰值。静态化:将活动页面上的所有可以静态的元素全部静态化,并尽量减

2021-02-04 21:17:52 806

原创 面试被问PHP设计模式与应用,不懂就回去等通知吧

设计模式六大原则开放封闭原则:一个软件实体如类、模块和函数应该对扩展开放,对修改关闭。里氏替换原则:所有引用基类的地方必须能透明地使用其子类的对象.依赖倒置原则:高层模块不应该依赖低层模块,二者都应该依赖其抽象;抽象不应该依赖细节;细节应该依赖抽象。单一职责原则:不要存在多于一个导致类变更的原因。通俗的说,即一个类只负责一项职责。接口隔离原则:客户端不应该依赖它不需要的接口;一个类对另一个类的依赖应该建立在最小的接口上。迪米特法则:一个对象应该对其他对象保持最少的了解。

2021-02-03 20:41:48 194

原创 面试官:你会用Laravel的这10种用法吗?我答了之后……

1、在 find 方法中指定属性User::find(1, ['name', 'email']);User::findOrFail(1, ['name', 'email']);2、Clone 一个 Model用 replicate 方法可以克隆一个 Model$user = User::find(1);$newUser = $user->replicate();$newUser->save();3、判断两个 Model 是否相同检查两个 Model 的ID是否相同用 is

2021-02-02 20:40:54 107 1

原创 遇到PHP面试常见的题型,你是如何做的呢

学习方法与经验交流今天有空和大家谈谈遇到PHP面试常见的题型,你是如何做的呢?记得我第一次面试PHP这个岗位的时候,哪个时候刚从学校出来混,不知道啥行情啊,又是零经验的(这里插一句,零经验的,如果你从来都没接触过开发一个完整的,或者半成品的项目,公司一般是不会要的,因为公司招你进去,是要你会帮忙做东西,实现公司的业务与业绩的提升的)。那个时候我就直接说试用期800元了,当然,好多年前的了哈!也是一个相当低的价位的,所以公司直接就要了!!!道理很简单,大家都懂的!在公司里做项目,成长是一个过程,提升你自

2021-02-01 21:02:04 87 1

原创 Swoole协程与Go协程的区别,很详细,很牛逼

一、进程、线程、协程进程是什么?进程就是应用程序的启动实例。例如:打开一个软件,就是开启了一个进程。进程拥有代码和打开的文件资源,数据资源,独立的内存空间。线程是什么?线程属于进程,是程序的执行者。一个进程至少包含一个主线程,也可以有更多的子线程。线程有两种调度策略,一是:分时调度,二是:抢占式调度。协程是什么?协程是轻量级线程, 协程的创建、切换、挂起、销毁全部为内存操作,消耗是非常低的。协程是属于线程,协程是在线程里执行的。协程的调度是用户手动切换的,所以又叫用户空间线程

2021-01-30 20:43:55 510

原创 二十道接地气的php面试题,让你直接通过面试!就此奉上~

1、echo count(“abc”); 输出什么?答:"1"count— 计算数组中的单元数目或对象中的属性个数int count ( mixed $var [, int $mode ] ), 如果 var 不是数组类型或者实现了 Countable 接口的对象,将返回 1,有一个例外,如果 var 是 NULL 则结果是 0。对于对象,如果安装了 SPL,可以通过实现 Countable 接口来调用 count()。该接口只有一个方法 count(),此方法返回 count() 函数的返回值。2

2021-01-25 20:05:54 218

原创 PHP经典面试题之 Redis 内存满了怎么办?

Redis占用内存大小我们知道Redis是基于内存的key-value数据库,因为系统的内存大小有限,所以我们在使用Redis的时候可以配置Redis能使用的最大的内存大小。1、通过配置文件配置通过在Redis安装目录下面的redis.conf配置文件中添加以下配置设置内存大小//设置Redis最大占用内存大小为100Mmaxmemory 100mbredis的配置文件不一定使用的是安装目录下面的redis.conf文件,启动redis服务的时候是可以传一个参数指定redis的配置文件的

2021-01-23 21:35:18 88

原创 【PHP】让新人快速理解ThinkPHP6中的事务操作

事务操作对很多新人来说,可能有点陌生,即使看了ThinkPHP6官方手册中事务操作的部分,也仍然不知所解。下面就给大家介绍下事务操作一、先说说使用场景假设我需要给朋友转账1000元钱,正常的业务逻辑是:1、银行从我的账户中扣除1000元2、银行给朋友账户加上1000元。如果一切顺利,则转账成功!那么问题来了,如果我不小心把银行账户输错,导致银行查找不到我输入的银行账户,但是这个时候钱已经从我的账户扣除了,如何处理呢?我们生活中经常说“如果钱打不过去,银行会退回来的”,就是这个意思。二、.

2021-01-22 21:33:07 156

原创 面试官:说说swoole+PHP实现自动取消订单,还原库存等操作

一、业务场景当客户下单在指定的时间内如果没有付款,那我们需要将这笔订单取消掉,比如好的处理方法是运用延时取消,这里我们用到了swoole,运用swoole的异步毫秒定时器不会影响到当前程序的运行,具体参考:https://wiki.swoole.com/wiki/page/319.html二、说明order_status为1时代表客户下单确定,为2时代表客户已付款,为0时代表订单已取消(正是swoole来做的),下面的代表我没有用框架,比较纯的PHP代表方便理解和应用三、举例说明库存表csdn_p

2021-01-20 19:53:58 255

原创 最新整理的PHP高级面试题来啦!【附答案】

mysql1、谈谈你在写sql语句需要注意有哪些点?答:select * 问题,客户端需要什么,就给什么,不要给多余的字段,这种情况可能还会导致本来可以走覆盖索引的语句不能走覆盖索引。不要在查询语句字段上做函数运算,这样会让索引失效。一定要避免mysql自动类型转换,比如 where ‘9’ =9。能不设置允许 null 的字段尽量不要设置,因为 null 会导致 mysql 多一层判断。使用 like 的时候如果是通配符 % 在最前面的话也会走的全表扫描。欢迎补充。

2021-01-19 21:23:04 2163

原创 一位资深php程序员在北京的面试30个题目,看看你能答出多少!

面试题集锦:SESSION 保存在服务器的哪里?服务端是如何获取客户端的cookie?如何实现SESSION共享,共享的原理是什么?请大致说出LVS搭建的过程,文件共享原理是什么?网络共享服务器上传数据是向一台服务器上传?还是多台?如何实现同步?说出你所知道的数据库设计范式?常用的建模工具是什么?(mysql建模工具)如果你是项目经理,你如何管理你的项目团队的日常事宜?主从数据库的配置,都需要哪些基本的条件,需要配置什么内容?说出你常用的版本控制器,SV

2021-01-18 19:40:08 159

原创 这份PHP面试题,我只挑重点,且很详细

基础篇1 Get 和 POST 的区别表单提交中get和post方式的区别有5点get是从服务器上获取数据,post是向服务器传送数据。get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到。post是通过HTTPpost机制,将表单内各个字段与其内容放置在HTML HEADER内一起传送到ACTION属性所指的URL地址。用户看不到这个过程。对于get方式,服务器端用Request.QueryString获取变量的值,对于p

2021-01-15 21:36:47 76

原创 一道面试题 - PHP 实现阶乘的若干方法

背景前一阵子在面试腾讯 WXG 的高级 PHP 开发岗,其中一次面试留了道算法题,要求用尽可能多的方法实现 PHP 的阶乘,并对比各种方法的优劣。最近所有面试都结束了,正好抽点时间写写博客,于是打算分享一下我的解题过程,后面抽空再分享 WXG 的七面面经。解题据本人了解,阶乘的实现方法一般可以分为三种,通常意义下的递归和循环各算一种,还有一大类通过一些巧妙的数学方法减少运算次数(尤其是乘法运算次数),进而优化计算效率。如果要考虑到高精度、大整数的阶乘,对于 PHP 语言而言,情况会更复杂一些,比如

2021-01-14 21:36:06 275

原创 PHP核心技术面试题,跳槽必备!

1 oop是什么?答:oop是面向对象编程,面向对象编程是一种计算机编程架构,OOP 的一条基本原则是计算机程序是由单个能够起到子程序作用的单元或对象组合而成。OOP具有三大特点1、封装性:也称为信息隐藏,就是将一个类的使用和实现分开,只保留部分接口和方法与外部联系,或者说只公开了一些供开发人员使用的方法。于是开发人员只 需要关注这个类如何使用,而不用去关心其具体的实现过程,这样就能实现MVC分工合作,也能有效避免程序间相互依赖,实现代码模块间松藕合。2、继承性:就是子类自动继承其父级类中的属性和方

2021-01-12 21:28:09 132

原创 php机制本身不提供多线程的操作,有了swoole就不一样了

多个任务同时执行比如,我们要对已知的用户数据进行判断,是否需要发送邮件和短信,如果需要发送则发送。不使用多进程时,我们首先判断是否发送邮件,如果需要则发送;然后再判断是否需要发送短信,如果需要则发送。如果发送邮件耗时2s,发送短信耗时2s,那么我们完成任务大概需要4s左右的时间。如果我们使用多线程的话,可以开两个线程,一个用于处理邮件,一个用于处理短信,则耗时一共需要2s左右,处理时间缩短了一半。以下是代码实例:<?php/** * Created by PhpStorm. * Use

2021-01-11 21:25:51 62

原创 【PHP】用Swoole实现四种高性能静态API方案

什么是静态化API?静态化API可以理解成把一些接口的数据存储在服务器本地。常用的是存成json文件,也可以是放在swoole的table中,总之是用户不从数据库直接读取数据,而是从本地加载的方式来大幅提高性能,因为很多系统的性能瓶颈是在数据库的位置。解决方案方案1 easySwoole + crontab方案2 easySwoole定时器方案3 Swoole table方案4 Redis实现这里做的分页的场景,不包含分页的源码,只从拿到了分页的数据看看定时生成json和获取json的部

2021-01-08 21:49:26 306

原创 面试官问你如何解决web高并发,你这样回答就好了!

所谓高并发,就是同一时间有很多流量(通常指用户)访问程序的接口、页面及其他资源,解决高并发就是当流量峰值到来时保证程序的稳定性。我们一般用QPS(每秒查询数,又叫每秒请求数)来衡量程序的综合性能,数值越高越好,一般需要压测(ab工具)得到数据。假设我们的一个进程(也可以是线程或者协程)处理一次请求花费了50毫秒(业内达标范围一般是20毫秒至60毫秒),那么1秒钟就可以处理20个请求,一台服务器是可以开很多这样的进程并行去处理请求的,比如开了128个,那么这台机器理论上的QPS=2560。千万不要小.

2021-01-07 22:16:44 151

原创 php面试时,你是否经常被问到这些问题?

1、<?php echo count(strlen(“http://php.net”)); ?>的执行结果是?答案:1讲解:count(var)是用来统计数组或对象的元素个数的。当var是null或者空数组时,结果为0。如果var是普通变量,则返回1。正常情况下返回var中的元素或属性个数。2、使用list()函数需要注意什么?答案:list()是一个语法结构。List(array)是用来快速把数组中的元素赋给一些变量。使用时要注意,array)是用来快速把数组中的元素赋给一些变量。

2021-01-06 22:06:37 121

空空如也

空空如也

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

TA关注的人

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