201906-19 大牛是怎么思考设计SQL优化方案的? 在进行MySQL的优化之前,必须要了解的就是MySQL的查询过程,很多查询优化工作实际上就是遵循一些原则,让MySQL的优化器能够按照预想的合理方式运行而已。 继续阅读 >
201906-19 Nginx常见故障502等解决方案汇总 HOT 网站的访问量大,而php-cgi的进程数偏少。 针对这种情况的502错误,只需增加php-cgi的进程数。具体就是修改/usr/local/php/etc/php-fpm.conf 文件,将其中的max_children值适当增加。这个数据要依据你的VPS或独立服务器的配置进行设置。一般一个php-cgi进程占20M内存,你可以自己计算下,适量增多。 /usr/local/php/sbin/php-fpm restart 然后重启一下 继续阅读 >
201906-18 提高工作效率的7个 Vim 使用技巧 HOT vim 是个非常高效、非常好用的工具,很多人一旦开始使用 Vim 之后就再也无法自拔。然而, Vim 仍然有其自身缺陷,对于普通用户来说,很难在入门的时候就体会到Vim的所谓高效性。 继续阅读 >
201906-18 PHP性能优化利器:生成器 yield理解 HOT 直接讲概念估计你听完还是一头雾水,所以我们先来说说优点,也许能勾起你的兴趣。那么生成器有哪些优点,如下: 生成器会对PHP应用的性能有非常大的影响 PHP代码运行时节省大量的内存 比较适合计算大量的数据 继续阅读 >
201906-18 【底层原理】进程与线程的一个简单解释 HOT 进程(process)和线程(thread)是操作系统的基本概念,但是它们比较抽象,不容易掌握。最近,我读到一篇材料,发现有一个很好的类比,可以把它们解释地清晰易懂。 继续阅读 >
201906-17 Yii2框架启动流程解读 HOT Yii2虽然是一个以简单著称的框架,但它的启动流程却有点复杂.想要用好这个框架,启动流程必须烂熟于心.尤其当你开发Yii2的扩展(Extension)时,或者将自己已有的扩展运用到Yii2开发的项目中时,你可能会通过composer安装,然后在应用中通过各种手段参与框架的整个流程,这时,了解整个框架的启动流程就很重要. 继续阅读 >
201906-17 PHP实现用户注册、验证邮箱激活功能示例 HOT 注册邮箱激活流程 1、用户注册 2、插入用户数据,此时帐号未激活状态。 3、将用户名密码或其他标识字符加密构造成激活识别码(你也可以叫激活码)。 4、将构造好的激活识别码组成URL发送到用户提交的邮箱。 5、用户登录邮箱并点击URL,进行激活。 6、验证激活识别码,如果正确则激活帐号。 继续阅读 >
201906-15 PHP打造智能识别收货地址信息 HOT 主要思路分两种,一种是用户正常输入全地址,则顺序按地区等级匹配地址;另一种用户非正常输入(省市区有缺少的),则全面模糊搜索表,再根据结果对比原地址。 继续阅读 >
201906-15 数据库并发控制,选择乐观锁还是悲观锁? HOT 实际生产环境里边,如果并发量不大,完全可以使用悲观锁定的方法,这种方法使用起来非常方便和简单。但是如果系统的并发非常大的话,悲观锁定会带来非常大的性能问题,所以就要选择乐观锁定的方法。 继续阅读 >
201906-15 一些实用的 Laravel 小技巧 HOT 网站一般都有侧栏,用来显示分类,标签,热门文章,热门评论啥的,但是这些侧栏都是相对独立的模块,如果在每一个引入侧栏的视图中都单独导入与视图有关的数据的话,未免太冗余了。。。所以最佳的做法是:新建一个 widgets 视图文件夹,再利用 Laravel 的 ViewComposers 单独为侧栏绑定数据,这样侧栏就可以随便引入而不用关心数据是否绑定啦~~~ 继续阅读 >
201906-15 负载均衡、分布式、集群的理解以及多台服务器代码如何同步 我们的项目如果跑在一台机器上,如果这台机器出现故障的话,或者用户请求量比较高,一台机器支撑不住的话。我们的网站可能就访问不了。那怎么解决呢?就需要使用多台机器,部署一样的程序,让几个机器同时的运行我们的网站。那怎么怎么分发请求的我们的所有机器上。所以负载均衡的概念就出现了。 继续阅读 >
201906-14 Nginx+PHP+FastCGI加速模式 当HTTP服务器每次遇到动态程序时,可以将其直接交付给FastCGI进程来执行,然后将得到的结果返回给浏览器。这种方式可以让HTTP服务器专一地处理静态请求或者将动态脚本服务器的结果返回给客户端,这在很大程度上提高了整个应用系统的性能。 继续阅读 >
201906-14 MySQL 数据库优化,看这篇就够了 前言数据库优化一方面是找出系统的瓶颈,提高MySQL数据库的整体性能,而另一方面需要合理的结构设计和参数调整,以提高用户的相应速度,同时还要尽可能的节约系统资源,以便让系统提供更大的负荷.1、优化一览图2、优化笔者将优化分为了两大类,软优化和硬优化,软优化一般是操作数据库即可,而硬优化则是操作服务器硬件及参数设置.2.1软优化2.1.1查询语句优化1、首先我们可以用EXPLAIN或DESCRIBE(简写:DESC)命令分析一条... 继续阅读 >
201906-14 Nginx服务优化(隐藏版本号、修改用户和组、设置链接超时) HOT Nginx服务优化可以从隐藏版本号、更改用户与组、配置网页缓存时间、日志切割、设置连接超时这几个方面进行优化。 继续阅读 >
201906-14 Swoole和Redis实现的并发队列处理系统 由于PHP不支持多线程,但是作为一个完善的系统,有很多操作都是需要异步完成的。为了完成这些异步操作,我们做了一个基于Redis队列任务系统。 大家知道,一个消息队列处理系统主要分为两大部分:消费者和生产者。 在我们的系统中,主系统作为生产者,任务系统作为消费者。 继续阅读 >
201906-13 面试官:Redis 是如何帮我们解决各种项目难题的? HOT 本篇着重从抽象层面来解释下redis的各项功能以及其存在的目的,而没有关心其具体的细节是什么。 从而可以聚焦于其解决的问题,依据抽象层面的概念可以使得我们在特定的场景下选择更合适的方案,而非局限于其技术细节。 继续阅读 >
201906-13 PHP实现日历签到,并实现累计积分功能 在网站开发过程中我们会经常用到签到功能来奖励用户积分,或者做一些其他活动。这次项目开发过程中做了日历签到,因为没有经验所有走了很多弯路,再次记录过程和步骤。 继续阅读 >
201906-13 Redis实战之限制操作频率 HOT 在业务开发的过程中,我们不断的参与各种业务场景的方案设计,往往很容易碰到很类似的场景,只不过当前所属的业务模块不一样,其实这些需求的本质是解决同一个问题,当我们遇到这种场景的时候,我们需要根据自己经验分析抽离出需求的本质问题,实现一个通用的解决方案,这可能就是区别于你是有灵魂的工程师还是cp(copy paste)最强王者吧。 继续阅读 >
201906-12 PHP7中的异常与错误处理 HOT PHP中的Exception,Error,ThrowablePHP中将代码自身异常(一般是环境或者语法非法所致)称作错误 Error,将运行中出现的逻辑错误称为异常 Exception错误是没法通过代码处理的,而异常则可以通过 try/catch 来处理PHP7中出现了 Throwable 接口,该接口由 Error 和 Exception 实现,用户不能直接实现 Throwable 接口,而只能通过继承 Exception 来... 继续阅读 >
201906-12 Api接口设计注意事项 HOT 设计接口是一件容易的事,也是件困难的事。设计接口每个人都会,每个人都能设计,也由此产生了各种各样的理念的接口。工作这么多年,我也很有感悟。很多人会说,设计接口多么简单,只要命名好,然后联调通了,上线可以调用就行了。特别是非互联网行业的人,这里没有歧视的意思。因为互联网行业和传统行业太多不一致性决定了这种思想的产生。 继续阅读 >
201906-11 RBAC用户角色权限设计方案 HOT 有人认为设计用户组时还需要为用户添加用户组以及为用户组添加权限,这和直接对单个用户添加权限异曲同工.但是当需要给已经存在的用户赋予权限时,如果之前使用了用户组这样的设计模式,那么便可以直接在用户组中赋予权限,不必去给每个用户赋予权限.而且使用用户组也是体现用户层级关系的一种结构,所以个人认为使用用户组是有必要的. 继续阅读 >