自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

wuhaifei

用心创造更好的文章

  • 博客(29)
  • 收藏
  • 关注

原创 PHP实时消息推送,你在用websocket吗?

前言最近在学习websocket协议,就基于websocket实现了实时消息推送的功能。正文什么是WebSocketWebSocket用于在Web浏览器和服务器之间进行任意的双向数据传输的一种技术。WebSocket协议基于TCP协议实现,包含初始的握手过程,以及后续的多次数据帧双向传输过程。其目的是在WebSocket应用和WebSocket服务器进行频繁双向通信时,可以使服...

2020-02-28 17:27:25 477

原创 给女朋友通俗易懂的讲解微服务架构

前言微服务架构在最近几年越来越火,离不开架构本身的分工明确,很好的解决了代码的重用问题,让开发效率更高。正文本文将介绍微服务架构和相关的组件,介绍他们是什么以及为什么要使用微服务架构和这些组件。本文侧重于简明地表达微服务架构的全局图景,因此不会涉及具体如何使用组件等细节。要理解微服务,首先要先理解不是微服务的那些。通常跟微服务相对的是单体应用,即将所有功能都打包成在一个独...

2020-02-28 15:23:07 698 3

原创 架构之路-微服务

前言要想成为一名优秀的机构师,掌握微服务是必不可少的,那什么是微服务呢?使用微服务有什么好处?下面带大家来了解这个被越来越多人使用的东西。正文什么是微服务微服务架构的系统是一个分布式的系统,按业务进行划分为独立的服务单元,解决单体系统的不足,同时也满足越来越复杂的业务需求。一.单体架构1.1什么是单体架构在软件设计的时候经常提到和使用经典的3层模型,即表现层,业务逻...

2020-02-28 14:12:22 115

原创 php怎么发送请求你知道吗

前言前端可以发送请求,后端也可以,php里的curl提供了这个操作,下面是我封装的curl,支持post和get方式,大家觉得写得还不错可以直接拿来用哦正文private static function doCurl($url, Array $data = [], $isPost = 0, $header = [], $timeOut = 25, $cookie = '') { ...

2020-02-26 18:32:55 145

原创 laravel 使用路由api.php

前言laravel框架是我们常用的框架,前后端分离趋势下api.php的用途越来越大。话不多说,下面实战带大家熟悉他。正文1) 在 文件中: routes/api.php添加:Route::get('fei', 'FeiController@index'); Route::get('/hello', function () { return 'world';...

2020-02-26 18:00:48 4636 1

原创 mysql的安装

前言上班第一天,在公司电脑搭建各种开发环境以及软件,mysql的安装是必不可少的,下面就讲解一下mysql的安装。正文一、下载MySQL首先,去数据库的官网http://www.mysql.com下载MySQL。点击进入后的首页如下:然后点击downloads,community,选择MySQL Community Server。如下图:滑到下面,找到Recomme...

2020-02-24 19:07:30 240

原创 mysql和pgsql的选择

前言如果打算为项目选择一款免费、开源的数据库,那么你可能会在MySQL与PostgreSQL之间犹豫不定。MySQL与PostgreSQL都是免费、开源、强大、且功能丰富的数据库。你主要的问题可能是:哪一个才是最好的开源数据库,MySQL还是PostgreSQL呢?该选择哪一个开源数据库呢?在选择数据库时,你所做的是个长期的决策,因为后面如果再改变决定将是非常困难且代价高昂的。你希望一开始...

2020-02-22 10:28:10 1408

原创 我们该选择workman还是swoole呢?

前言 php的基于socket的异步框架有哪些呢?我目前见过的就两种,一种是workman框架,一种是基于swoole开发出来的框架。那么两种我们该选择那种呢?正文workermanworkerman是一个高性能的PHP socket 服务器框架,workerman基于PHP多进程以及libevent事件轮询库,PHP开发者只要实现一两个接口,便可以开发出自己的网络应用...

2020-02-19 11:51:26 2434

原创 php常见的三种框架比较

前言 最近在网上查了一下php的最常用的三种框架tp,laravel,yii2的资料并结合自己的理解总结一下三种框架的优缺点,话不多说请看正文。正文 yii2: 优点:gii蛮不错的,简化了开发流程,可以生成绝大数的代码,开发后台等效率还是蛮高的 缺点:前后端完全的分离的趋势下,yii2前后端的耦合的还是有些重了 laravel:...

2020-02-19 11:02:10 1119

原创 吴大仙带你三分钟学会swoole框架

前言最近在学习swoole这个东西,就写点心得吧。基于swoole的开源框架很多,优缺点自己百度,凡是有用到websocket和消费队列选择基于swoole的框架是不错的选择。好吧话不多说,吴大仙就介绍一下swoole的一个简单入门吧正文swoole有两个部分。 一个是PHP扩展,用C开发的,这是核心。 另一个是框架,像yii、TP、Laravel一样,是PHP代码写的。swool...

2020-02-14 12:46:03 664 1

原创 学了框架这么久,你知道laravel与tp的区别的吗?

前言 因为疫情原因,电话面试某扑上市公司,被问到laravel和tp的区别,突然被问这个问题有点措不及防,个人回答的不算太好只答了中间件。面试结束之后查了资料,才发现大部分都知道有用过,临时太紧张了真的想不起来。也是希望各位小伙伴不要轻视基础问题,对每个知识点要多加留意。准备好,面试才会从容不迫。正文1、TP框架:ThinkPhp简单、快速,基于MVC和面向对象,易用性...

2020-02-06 15:32:23 2732 1

原创 面试官问你php协程,你要这样告诉他

多任务 (并行和并发)在讲协程之前,先谈谈多进程、多线程、并行和并发。对于单核处理器,多进程实现多任务的原理是让操作系统给一个任务每次分配一定的 CPU 时间片,然后中断、让下一个任务执行一定的时间片接着再中断并继续执行下一个,如此反复。由于切换执行任务的速度非常快,给外部用户的感受就是多个任务的执行是同时进行的。多进程的调度是由操作系统来实现的,进程自身不能控制自己何时被调度,也就是说...

2020-02-06 11:52:19 350

原创 分享个人对多进程和多线程的理解

php开发需要了解进程和线程,因为也会遇到多线程的开发。那什么是进程和线程呢?一起来唠唠吧。内容概要:1、什么是进程2、什么是线程3、进程和线程的关系4、php编程常见的进程和线程一、什么是进程进程是程序执行是的一个实例,进程能够分配给cpu和内存等资源。进程一般包括指令集和系统资源,其中指令集就是你的代码,系统资源就是指cpu、内存以及I/O等。二、什么是线程...

2020-02-06 11:35:31 257

原创 什么是php多线程?

PHP在默认的情况下是不支持多线程的,通过安装pthreads扩展,让其参数来指定编译PHP的线程安全方式来使其支持多线程,但是使用的过程中要考虑到线程安全的问题线程是操作系统中进行运算调度的最小单位。它被包含在进程中,是进程中的实际运作单位。今天将要分享的是线程知识是有关于PHP的,具有一定的参考价值,希望对大家有所帮助多线程的理解所谓多线程就是在在一个进程中可以并发多个线程,...

2020-02-06 11:25:44 1904

原创 php常用的扩展组件

1)ZendGuardLoader用优化代码的方法来提高php应用程序的执行速度;PHP源码加密;2)ioncube_loadersPHP源码加密;3)php-imagick、php-gmagick图片处理,功能强于GD库4)php-memcached、php-redis数据库缓存,需要调整代码结构5)xcachePHP缓存,不需要调整代码一般会选择xcache+...

2020-02-05 20:22:22 596

原创 WebSocket协议?你了解多少?

我们一直使用的http协议只能由客户端发起,服务端无法直接进行推送,这就导致了如果服务端有持续的变化客户端想要获知就比较麻烦。WebSocket协议就是为了解决这个问题应运而生。WebSocket协议,客户端和服务端都可以主动的推送消息,可以是文本也可以是二进制数据。而且没有同源策略的限制,不存在跨域问题。协议的标识符就是ws。像https一样如果加密的话就是wxs。简单实例客户端代码...

2020-02-05 20:08:06 235

原创 Rocketmq原理

一、 MQ背景消息队列作为高并发系统的核心组件之一,能够帮助业务系统解构提升开发效率和系统稳定性。主要具有以下优势:削峰填谷(主要解决瞬时写压力大于应用服务能力导致消息丢失、系统奔溃等问题)系统解耦(解决不同重要程度、不同能力级别系统之间依赖导致一死全死)提升性能(当存在一对多调用时,可以发一条消息给消息系统,让消息系统通知相关系统)蓄流压测(线上有些链路不好压测,可以通过堆积一定量消...

2020-02-05 19:39:10 1691

原创 redis的watch命令?

前言 面试了一家上市公司,他们问我redis的watch命令是什么意思,当场就蒙了,redis命令数据类型,get,set这些常见的命令知道,但是watch这个命令一时忘了是什么意思?好尴尬,好吧,就是菜。正文watch 用于在进行事务操作的最后一步也就是在执行exec 之前对某个key进行监视如果这个被监视的key被改动,那么事务就被取消,否则事务正常执行.一般在...

2020-02-05 18:21:53 1053

原创 区块链前世今生和三个感性故事

区块链前世今生比特币起源说到区块链不得不说比特币,比特币是在什么样的背景下产生的?2008年全球金融危机,世界各国央行滥发货币通货膨胀。就当时有人用“中本聪”的化名发表了一篇《比特币:一种点对点电子现金系统》的论文,描述了比特币的运行原理和模式。200...

2020-02-05 14:25:04 1951

原创 如果有人问你 MySql 怎么存取 Emoji,把这篇文章扔给他

01、前言Emoji 在我们生活中真的是越来越常见了,几乎每次发消息的时候不带个 Emoji,总觉得少了点什么,似乎干巴巴的文字已经无法承载我们丰富的感情了。对于我们开发者来说,如何将 Emoji 存入 MySql 数据库或者取出来,就变成了一种必须掌握的技能了。Emoji 是一种图形符号,能够很直观地反应出某种文字含义。它让我想起远古时代的象形文字。Emoji 其实是一个日语词(え...

2020-02-05 11:06:27 155

原创 如何处理负载、高并发?

答:从低成本、高性能和高扩张性的角度来说有如下处理方案:1、HTML静态化其实大家都知道,效率最高、消耗最小的就是纯静态化的html页面,所以我们尽可能使我们的 网站上的页面采用静态页面来实现,这个最简单的方法其实也是最有效的方法。2、图片服务器分离把图片单独存储,尽量减少图片等大流量的开销,可以放在一些相关的平台上,如骑牛等3、数据库集群和库表散列及缓存数据库的并发连接为...

2020-02-04 15:55:20 1943

原创 商城秒杀的实现?

答:抢购、秒杀是如今很常见的一个应用场景,主要需要解决的问题有两个:1 高并发对数据库产生的压力2 竞争状态下如何解决库存的正确减少("超卖"问题)对于第一个问题,已经很容易想到用缓存来处理抢购,避免直接操作数据库,例如使用Redis。第二个问题,我们可以使用redis队列来完成,把要秒杀的商品放入到队列中,因为pop操作是原子的,即使有很多用户同时到达,也是依次执行,文件锁...

2020-02-04 15:50:40 225

原创 常见的 PHP 安全性攻击

SQL注入:用户利用在表单字段输入SQL语句的方式来影响正常的SQL执行。防止:使用mysql_real_escape_string()过滤数据 手动检查每一数据是否为正确的数据类型 使用预处理语句并绑定变量 参数化SQL:是指在设计与数据库链接并访问数据时,在需要填入数值或数据的地方,使用参数 (Parameter) 来给值,用@或?来表示参数。XSS攻击:跨站点脚本攻击,由用户输入一些数...

2020-02-04 12:54:16 1406

原创 静态化如何实现的?伪静态如何实现?

1、 静态化指的是页面静态化,也即生成实实在在的静态文件,也即不需要查询数据库就可以直接从文件中获取数据,指的是真静态。实现方式主要有两种:一种是我们在添加信息入库的时候就生成的静态文件,也称为模板替换技术。一种是用户在访问我们的页面时先判断是否有对应的缓存文件存在,如果存在就读缓存,不存在就读数据库,同时生成缓存文件。2、伪静态不是真正意义上的静态化,之所以使用伪静态,主要是为了SE...

2020-02-04 12:42:52 904

原创 腾讯的一道面试题

使用正则表达式提取一段标识语言(html或xml)代码段中指定标签的指定属性值(需考虑属性值对不规则的情况,如大小写不敏感,属性名值与等号间有空格等)。此处假设需提取test标签的attr属性值,请自行构建包含该标签的串(腾讯)个人解法(仅供参考):<?phpheader("content-type:text/html;charset=utf-8");f...

2020-02-04 12:08:25 250

原创 php中WEB上传文件的原理是什么,如何限制上传文件的大小?

上传文件的表单使用post方式,并且要在form中添加enctype='multipart/form-data'。一般可以加上隐藏域:<input type=hidden name='MAX_FILE_SIZE' value=dddddd>,位置在file域前面。value的值是上传文件的客户端字节限制。可以避免用户在花时间等待上传大文件之后才发现文件过大上传失败的麻烦。使...

2020-02-04 12:04:48 1235

原创 面试你讲的清楚OOP吗?

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

2020-02-04 11:48:38 412

原创 从一个标准url获取文件后缀,你知道怎么处理嘛?

今天面试了一个公司,其中有个面试题就是从标准url获取文件后缀,刚看到 这个题目,就想url是一个字符串,所以获取文件后缀就是截取一段字符串。 本人提供两种方案: //方案一functiongetExt1($url){$arr=parse_url($url);//Array([scheme]=&g...

2020-02-04 11:45:14 638

原创 算法-洗牌算法

今天面试了一家公司,要求写洗牌算法,我想这个很简单啊,就是要求输出不同的牌并且牌的顺序尽量分开嘛想了一下代码就出来了(php实现比较简单,其他语言可能复杂一点单思想是一样的),当然了还有很多的算法可以实现,以下为个人代码:<?php/*** 洗牌程序* edit wuhaifei* email 18879388361@163.com* at 2020/2/1*/$ca...

2020-02-01 15:59:19 309

空空如也

空空如也

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

TA关注的人

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