- 博客(23)
- 收藏
- 关注
原创 **php 编写接口的规范*
*一. 接口按请求人可以分为两种:一种是被其他内部项目调用的接口(包括js异步请求的接口和定时程序)。另一种是对外的接口,主要提供给外部开发者调用的。 两种接口最大区别就是,内部接口不需要太严格的身份验证,而对外接口需要严格的身份验证,加密解密方式各种各样,其中最常见最简单的就是http basic验证,例如我们的大后台弹出的账号和密码弹窗 就是用了basic验证,输入账号和密码才能通过验证。但是如果内部接口涉及到重要的操作,不希望被他人恶意请求的...
2021-11-20 10:48:35
180
转载 WEB前端性能优化常见方法
web前端是应用服务器处理之前的部分,前端主要包括:HTML,CSS,javascript,image等各种资源,针对不同的资源有不同的优化方式。1. 内容优化复制代码(1)减少HTTP请求数:这条策略是最重要最有效的,因为一个完整的请求要经过DNS寻址,与服务器建立连接,发送数据,等待服务器响应,接收数据这样一个消耗时间成本和资源成本的复杂的过程。 常见方法:合并多个CSS文件和js文件,利用CSS Sprites整合图像,Inline Images(使用 data:URL scheme在实
2021-10-13 12:09:57
660
转载 消息中间件RabbitMQ和kafka的区别
1.应用场景方面RabbitMQ:用于实时的,对可靠性要求较高的消息传递上。kafka:用于处于活跃的流式数据,大数据量的数据处理上。2.架构模型方面producer,broker,consumerRabbitMQ:以broker为中心,有消息的确认机制kafka:以consumer为中心,无消息的确认机制3.吞吐量方面RabbitMQ:支持消息的可靠的传递,支持事务,不支持批量操作,基于存储的可靠性的要求存储可以采用内存或硬盘,吞吐量小。kafka:内部采用消息的批量处理,数据的存储和获
2021-06-08 10:07:37
339
原创 2021-04-20
4.20 壹品色——技术PHP请求nginx响应流程客户端做出请求操作客户端对域名进行解析,向设定的DNS服务器请求 IP 地址客户端根据 DNS 服务器返回 IP 地址采用三次握手与服务端建立 TCP/IP 连接TCP/IP 连接成功后,客户端向服务端发送 HTTP 请求服务端的 Web Server 会判断 HTTP 请求的资源类型,进行内容分发处理;如果请求的资源为 PHP 文件,服务端软件会启动对应的 CGI 程序进行处理,并返回处理结果服务端将 Web Server 的处理结果响应给
2021-04-20 22:09:57
177
1
原创 2021-04-19
4.19 php常见面试题小结秒杀秒杀商品入库审核(后台),把秒杀商品保存到mysql中秒杀服务定时将秒杀商品载入redis用户经过openresty(nginx)访问redis获取秒杀商品,获取秒杀列表页(展示秒杀商品)点击秒杀商品图片进入秒杀详情页,也是通过openResty(nginx),这是个插件可以抗上万并发通过openResty查询redis判断是否有秒杀商品,如果有秒杀商品,检查用户是否登录用户登录,秒杀服务,排队抢单,记录用户的id和商品id,把排队信息存储到redis中,提示
2021-04-19 21:40:17
129
原创 2021-04-12
一、高并发的处理?优化方案1:将库存字段number字段设为unsigned,当库存为0时,因为字段不能为负数,将会返回false95f904f84a5a4f83f1f1f5416f51638c6c6.jpg悲观锁思路 解决线程安全的思路很多,可以从“悲观锁”的方向开始讨论。优化方案2:使用MySQL的事务,锁住操作的行aaff019acdd2f7d0ad65c97f5c480770681.jpg优化方案3:使用文件锁排它锁flock函数用于获取文件的锁,这个锁同时只能被一个线程获取到,其它
2021-04-12 21:08:22
290
原创 2021-04-11
Git比SVN相比有什么区别呢?Git优点:1、分布式,每个参与开发的人的电脑上都有一个完整的仓库,不担心硬盘出问题;2、在不联网的情况下,照样可以提交到本地仓库,可以查看以往的所有log,等到有网的时候,push到远程即可;3、非常强大的分支管理功能。4、Git的内容的完整性要优于SVN: GIT的内容存储使用的是SHA-1哈希算法。这能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏。Git缺点:权限管理不是很方便,需要安装插件gitolite,配置有点麻烦,或者直接
2021-04-11 20:00:05
84
原创 2021-04-11
Linux常用命令ls 显示文件或目录 -l 列出文件详细信息l(list) -a 列出当前目录下所有文件及目录,包括隐藏的a(all)mkdir 创建目录 -p 创建目录,若无父目录,则创建p(parent)cd 切换目录touch 创建空文件echo 创建带有内容的文件。cat 查看文件内容cp
2021-04-11 19:57:53
94
原创 2021-04-11
PHP常见设计模式特点及其使用场景简述1.单例模式特点:三私一公:私有的静态变量(存放实例),私有的构造方法(防止创建实例),私有的克隆方法(防止克隆对象),公有的静态方法(对外界提供实例)应用场景:程序应用中,涉及到数据库操作时,如果每次操作的时候连接数据库,会带来大量的资源消耗。可以通过单例模式,创建唯一的数据库连接对象。2.工厂模式特点:将调用对象与创建对象分离,调用者直接向工厂请求,减少代码的耦合.提高系统的可维护性与可扩展性。应用场景:提供一种类,具有为您创建对象的某些方法
2021-04-11 19:53:50
90
原创 2021-03-30
3.29面试题1.sql优化1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:select id from t where num is null可以在num上设置默认值0,确保表中num列没有null值,然后这样查询:select id from t where num=03.应尽量避免在 where 子句中使用!=或<
2021-03-30 09:55:33
137
原创 前端VUE及PHP常见业务场景概括小结(程序猿提薪必备!!!)
1.什么是IOCIOC是Inversion of Control的缩写,多数书籍翻译成“控制反转”。1996年,Michael Mattson在一篇有关探讨面向对象框架的文章中,首先提出了IOC 这个概念。对于面向对象设计及编程的基本思想,前面我们已经讲了很多了,不再赘述,简单来说就是把复杂系统分解成相互合作的对象,这些对象类通过封装以后,内部实现对外部是透明的,从而降低了解决问题的复杂度,而且可以灵活地被重用和扩展。IOC理论提出的观点大体是这样的:借助于“第三方”实现具有依赖关系的对象之间的解耦。
2021-03-28 21:46:26
637
原创 TP6内部异常处理
处理方式一:在app/ExceptionHandle.php->render()方法中,可添加自定义异常处理机制,无需try catch,直接抛出api格式的异常处理方式二:第一种处理方式是多应用模式下的公共文件,换句话说就是所有模块都会加载这个文件,并且抛出同样的异常格式所以不能将异常处理文件放在公共目录,而是单独应用单独创建为每个模块单独设立异常处理,注意provider.php的异常设置优化处理方式二:前面的http状态码是固定的,通过:稍作修改但是这是使用thro
2021-03-22 21:50:10
1006
原创 Tp6中间件处理
中间件是php5.1.6以后引入的思想,中间件主要用来处理一些http的请求,比如说过滤、拦截等,中间件解决了之前老的做法,创建base控制器,其他控制器继承base控制器,base控制器继承controller控制器官方手册:https://www.kancloud.cn/manual/thinkphp6_0/1037493注:方法名是固定的注册中间件除此以外还可以定义中间件的结束调度任务如果针对单个的方法或者单个的控制器去实现中间件,那么就需要结合路由中间件去实现...
2021-03-22 21:19:52
651
原创 TP6中db操作数据库的方式(方法)和ORM模型操作数据库的方式(方法)
db库认知基础注:orm独立出来了,与tp5不同配置数据库:通过env文件来具体配置,目的是不同的环境下,如线上服务器的配置只需要使用本环境的env文件就可以直接更改配置了使用db:① tp5中使用DB方法直接use think/Db即可,tp6中必须使用门面才能使用use think\facade\Db;public function hello(){$result = Db::table(“user”)->where(“id”,10)->find();dump($res
2021-03-22 21:16:14
3134
原创 TP6的参数获取方式
获取单个数据值同时进行类型转换$this->request->param(‘abc’,1,‘intval’)使用依赖注入的形式public function index(Request $request){return $request->param(‘abc’);}使用助手函数input(‘abc’);使用框架提供的request()方法request()->param(‘abc’);门面模式静态调用use think\facade\Request;publ
2021-03-22 21:14:13
705
原创 TP6如何输出JSON数据
控制器巧用输出使用return即可输出json内容可以直接使用tp6提供的json方法控制器request属性绑定request对象可追踪request对象的产生过程BaseController中的__construct()vendor/topthink/framework/src/think/App.php集成的父类container容器类容器类中的__get()方法get()方法创建出对象实例...
2021-03-22 21:10:31
2255
转载 常见PHP协议的全称和中文解释(提示:都是工作在应用层)SMTP、POP3、HTTP、FTP、DNS
SMTP (Simple Mail Transfer Protocol) 简单邮件传输协议POP3 (Post Office Protocol 3) 邮局协议第3版HTTP (Hypertext Transfer Protocol) 超文本传输协议FTP (File Transfer Protocol)文件传输协议DNS (Domain Name System and Domain Name Service protocol) 域名系统(服务)协议作者:牛奶芝麻链接:https://www.ji
2021-03-21 21:03:09
1171
转载 Session的工作原理(提示:与Cookie有相应的关系)
Session的工作原理:当一个 Session第一次被启用时,一个唯一的标识被存储于本地的 Cookie 中。首先使用 session_start() 函数,PHP从 Session 仓库中加载已经存储的 Session 变量。当执行 PHP 脚本时,通过使用 session_register() 函数注册 Session 变量。当 PHP脚本执行结束时,未被销毁的 Session 变量会被自动保存在本地一定路径下的 Session 库中,这个路径可以通过 php.ini 文件中的 session
2021-03-21 21:00:24
154
转载 PHP语言的四大优势和八大特性
PHP(PHP: Hypertext Preprocessor的缩写,中文名:“超文本预处理器”)是一种通用开源脚本语言。语法吸收了C语言、Java和 Perl的特点,入门门槛较低,易于学习,使用广泛,主要适用于Web开发领域。PHP的文件后缀名为php。小编帮你细数PHP的四大特性八大优势:PHP语言的特性包括:1、PHP 独特的语法混合了 C、Java、Perl 以及 PHP 自创新的语法。2、PHP支持几乎所有流行的数据库以及操作系统。3、PHP可以比CGI或者Perl更快速的执行动态网页——
2021-03-21 18:53:50
192
原创 网站太慢如何排查?以及如何优化?
网站太慢在本地网速正常情况下,可以使用第三方工具排查。比如:xhprof。或者打开控制台查看NetWork查看。那怎么进行优化呢?前端方面:合并css js 尽量合并代码 减少注释,避免重复引用文件。大文件单独优化,比如图片:可以放到专属服务器上例如(七牛云)后端方面:可以从提高代码效率和优化数据库入手...
2021-03-21 18:52:50
168
转载 Think PHP的生命周期
入口文件用户发起的请求都会经过应用的入口文件,通常是 public/index.php文件。当然,你也可以更改或者增加新的入口文件。通常入口文件的代码都比较简单,一个普通的入口文件代码如下:// 应用入口文件// 定义项目路径define(‘APP_PATH’, DIR . ‘/…/application/’);// 加载框架引导文件require DIR . ‘/…/thinkphp/start.php’;一般入口文件以定义一些常量为主,支持的常量请参考后续的内容或者附录部分。通常,我们不建议在
2021-03-21 18:51:24
179
转载 Mysql连接参数
Mysql连接方式一般有两种,第一种是通过TCP建立连接。第二种是在本地上才可以使用的方式,unix socket文件连接Mysql使用的是长连接Mysql一般情况下都是使用同步方式所以Mysql一般使用的是同步的TCP的长连接Mysql怎么查看长连接?可以使用SHOW GLOBAL STATUS LIKE 'Thread%'命令查看查出内容为:Threads_cached已经缓存的连接Threads_connected当前打开的连接Threads_created启动Mysql后创建的连接
2021-03-21 18:49:45
946
转载 Redis为什么那么快?
**Redis为什么那么快?**Redis性能解析–Redis为什么那么快?echo编辑整理,欢迎转载,转载请声明文章来源。欢迎添加echo微信(微信号:t2421499075)交流学习。 百战不败,依不自称常胜,百败不颓,依能奋力前行。——这才是真正的堪称强大!!!Redis的实际被应用都是因为它的性能,在众多缓存中Redis也是一个比较快的中间件,而且它是单线程操作,没有过的内存开销,给程序带来了更多的扩展空间。Redis的性能展示在保证网络...
2021-03-21 18:29:34
102
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人