自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 理解依赖注入和控制反转

1.控制反转(Inversion of Control,缩写为IoC)是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度。其中最常见的方式叫做依赖注入(Dependency Injection,简称DI),还有一种方式叫“依赖查找”(Dependency Lookup)。通过控制反转,对象在被创建的时候,由一个调控系统内所有对象的外界实体,将其所依赖的对象的引用传递(注入)给它...

2019-11-28 15:35:42 304

原创 php生成二维码的三种方法

最简单最实例的goolge开源方法1.google开放api代码如下:2.php类库PHP QR Code地址:http://phpqrcode.sourceforge.net/下载:http://sourceforge.net/projects/phpqrcode/代码如下:对于第二种方法:如果不使用$filename,第二个参

2016-11-24 17:16:19 37532

原创 Mysql优化之:group by、order by、distinct优化

1.order by优化实现方式:1. 根据索引字段排序,利用索引取出的数据已经是排好序的,直接返回给客户端;2. 没有用到索引,将取出的数据进行一次排序操作后返回给客户端。 EXPLAIN SELECT m.id,m.subject,c.content FROM group_message m,group_message_content c WHERE m.group_id...

2019-12-09 20:45:55 356

原创 Mysql的order by和group by性能优化

一.提高order by 的速度:1.查询时使用order by 的列尽量使用索引,避免出现fileSort;2.order by 时 select * 是一个大忌,只取query需要的字段,这点非常重要,在这里影响的是:当query 字段大小总和小于 max_length_for_sort_data 而且排序字段不是TEXT或BLOB类型时,会用改进后的算法:单路排序;否则用老算法:...

2019-12-09 20:43:56 1290

原创 什么是Reactor模式,反应器模式?

1.用的场景:并发系统常使用reactor模式,代替常用的多线程的处理方式,节省系统的资源,提高系统的吞吐量。先介绍一下这种方式的优点,通过和常用的多线程方式比较一下,可能更好理解。(1)举个生活中的例子:以一个餐饮为例,每一个人来就餐就是一个事件,他会先看一下菜单,然后点餐。就像一个网站会有很多的请求,要求服务器做一些事情。处理这些就餐事件的就需要我们的服务人员了。在多线程处...

2019-12-09 20:28:30 191

原创 Linux单进程文件句柄数

linux中单个进程最多允许打开的文件句柄数(包括socket连接数)是有限制的,当大于这个系统限制时,程序会抛出大量的无法打开文件的报错。查看的命令是:ulimit -a 查看系统的文件相关限制其中open files表示的是单个进程最多允许打开的文件句柄数(soket连接数也算在内),默认值是1024。对于一般的程序来说,这个值是足够的,但是对于很多需要打开大量文件或者...

2019-12-09 20:22:10 732

原创 阻塞模型与非阻塞模型

1.PHP-FPM是阻塞模型,假设你用 php-fpm,你的 php 程序中需要向外部提供接口请求。那么每一个 Worker 进程在执行这些网络 I/O 的时候,是不是都阻塞了?假设你的 php-fpm 最大进程数有 500 个,那么同时进来了 500 个请求,是不是都阻塞在了网络 I/O 上了?那么接下来,php-fpm 已经无法处理第 501 个请求了。可是此时,由于在等待网络 I/O 响应,...

2019-12-02 19:26:37 347

原创 详解IO多路复用中的select, poll, epoll

select, poll, epoll 都是I/O多路复用的具体的实现,这三个是不同时期先后顺序出来的,也是为了改进性能。I/O多路复用这个概念被提出来以后, select是第一个实现 (1983 左右在BSD里面实现的)。1.select 被实现以后,暴露出了很多问题。select 会修改传入的参数数组,这个对于一个需要调用很多次的函数,是非常不友好的。 select 如果任何一个...

2019-12-02 19:03:11 233

原创 Nginx 多进程模型是如何实现高并发的?

先总结:nginx是异步非阻塞工作方式,平时设置nginx的worker进程数时,设置的和CPU核数相同比较合适。我们平时在设置Nginx 的Worker进程数时,一般设置与CPU核数相同,这是为什么?为什么几个进程就可以实现高并发呢?因为进程数与并发数不存在很直接的关系,主要还是取决server采用的工作方式,如果一个server采用一个进程负责一个request请求的方式,那么进程数就...

2019-12-02 18:35:21 141

原创 PHP底层基本原理

基本原理Zend/Opcode/ExtensionsPHP有两大类模块:Zend引擎、扩展层1. Zend引擎将PHP源文件 解释为一系列操作码(opcode),然后循环 执行操作码;2. 扩展层是一组函数、类库和流,PHP使用它们来执行一些特定功能的操作,例如数据库功能、网络功能。嵌码原则1. 可操作性:自动嵌码2. 效率:只在必要的位置嵌入尽量简洁...

2019-12-02 18:09:12 213

原创 PHP-FPM与FastCGI,CGI有什么关系?

1.CGI是什么?是为了保证web server传递过来的数据是标准格式的,方便CGI程序的编写者。web server(比如说nginx)只是内容的分发者。比如,如果请求/index.html,那么web server会去文件系统中找到这个文件,发送给浏览器,这里分发的是静态数据。好了,如果现在请求的是/index.php,根据配置文件,nginx知道这个不是静态文件,需要去找PHP解析...

2019-12-02 18:03:04 144

原创 CDN原理解析

首先,让我们来看一下传统的Internet网络的基本结构和数据传输情况,如下图所示。Internet网络基本结构及数据传输方式根据传统的网络结构,用户的访问流程基本如下:1.用户在自己的浏览器中输入要访问的网站的域名2.浏览器向本地DNS请求对该域名的解析3.本地DNS将请求发到网站授权的DNS服务器4.授权DNS将服务器的IP地址作为解析结果送给本地DNS...

2019-11-29 13:28:03 475

原创 HTTP、TCP、UDP、Socket关系详解

TCP、UDP和HTTP关系是什么? 1、TCP/IP是个协议组,可分为三个层次:网络层、传输层和应用层。在网络层有IP协议、ICMP协议、ARP协议、RARP协议和BOOTP协议。在传输层中有TCP协议与UDP协议。在应用层有FTP、HTTP、TELNET、SMTP、DNS等协议。因此,HTTP本身就是一个协议,是从Web服务器传输超文本到本地浏览器的传送协议。

2017-10-20 21:05:56 244

转载 网站整合Ucenter详细流程

第一步:下载安装UCenter,这里就不详细说了,网上很多教程 1.下载UCenter下载地址: 2.安装UCenter 第二步:打开下载UCenter文件夹内的advanced文件夹,这里就是接口文件啦,里面的document就是接口的API说明,examples文件夹就是一些使用例子,按照这些例子会很快掌握你想要达到的效果,uc_client是接口文件。 第

2016-11-25 11:16:22 13380 1

转载 遮罩层有滚动条时解决方法

在弹出层后面的 遮罩层,因为有滚动条,导致滚动条下面不可视区域没有遮罩层,解决方式是加的css。 //显示灰色JS遮罩层 function showBg(ct,content){ var bH=$(document).height(); var bW=$("body").width()+16; var objWH=getObjWh(ct); $("#fu

2016-11-24 17:09:14 6368

空空如也

空空如也

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

TA关注的人

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