201907-06 Swoole_process实现进程池的方法 HOT Swoole 的进程之间有两种通信方式,一种是消息队列(queue),另一种是管道(pipe),对swoole_process 的研究在swoole中显得尤为重要。 继续阅读 >
201907-05 【基础】开发中经常用到的4个四舍五入函数 HOT php 在处理浮点数的时候经常要需要用的四舍五入函数。比如在开发订单中,金额结算,支付,退款等都会涉及到到结算,结算就会用到浮点数类型,偶尔会保留两位小数,这个时候就会用到四舍五入函数了,以下是对这几个函数的讲解,floor函数和ceil函数互相搭配起来可以使php 处理的数据更加真实可靠。 继续阅读 >
201907-05 MySQL数据库表设计规范 HOT 一般都使用 INNODB 存储引擎,除非读写比率<1%,才考虑使用 MYISAM 存储引擎;其 他存储引擎请在 DBA 的建议下使用。 继续阅读 >
201907-05 在服务器上对 PHP-FPM 和 Nginx 进行安装配置详解 HOT 各个工具之间有所差别,但是目标是一致的 —— 根据精确的规则自动配置新服务器。如果要管理多台服务器,我强烈建议研究使用配置工具,这样可以节省大量时间。 继续阅读 >
201907-05 24 个必须掌握的数据库面试问题! HOT 每当有一条新的记录插入时,MySQL会根据其主键将其插入适当的节点和位置,如果页面达到装载因子(InnoDB默认为15/16),则开辟一个新的页(节点)。 继续阅读 >
201907-05 深入理解php的输出缓冲区(output buffer) HOT 我们要讨论的东西是基于PHP 5.4(及以上版本),PHP中的OB层从5.4版开始就发生了很多变化,确切说是完全重写了,有些地方可能都不兼容PHP 5.3了。 继续阅读 >
201907-04 MySQL 索引原理及设计 HOT 索引一直是数据库中非常重要的概念,所以了解索引相关的知识是转入后端开发中必不可少的一环。这篇文章尽量会把关于索引的一些点以及为什么需要这么做给解释明白,包括使用 InnoDB 引擎的 MySQL 索引的相关概念,以及如何针对 InnoDB 进行索引的设计和使用,以及三星索引的概念。 继续阅读 >
201907-04 也许这样理解 HTTPS 更容易 HOT 本文尝试一步步还原HTTPS的设计过程,以理解为什么HTTPS最终会是这副模样。但是这并不代表HTTPS的真实设计过程。在阅读本文时,你可以尝试放下已有的对HTTPS的理解,这样更利于“还原”过程。 继续阅读 >
201907-04 缓存穿透,缓存击穿,缓存雪崩解决方案分析 HOT 针对业务系统,永远都是具体情况具体分析,没有最好,只有最合适。 最后,对于缓存系统常见的缓存满了和数据丢失问题,需要根据具体业务分析,通常我们采用LRU策略处理溢出,Redis的RDB和AOF持久化策略来保证一定情况下的数据安全。 继续阅读 >
201907-04 工作中99%能用到的git命令 HOT 分支操作:gitbranch创建分支gitbranch-b创建并切换到新建的分支上gitcheckout切换分支gitbranch查看分支列表gitbranch-v查看所有分支的最后一次操作gitbranch-vv查看当前分支gitbrabch-b分支名origin/分支名创建远程分支到本地gitbranch--merged查看别的分支和当前分支合并过的分支gitbranch--no-merged查看未与当前... 继续阅读 >
201907-04 MySQL 中事务、事务隔离级别详解 HOT 事务由单独单元的一个或多个SQL语句组成,在这个单元中,每个MySQL语句是相互依赖的。而整个单独单元作为一个不可分割的整体,如果单元中某条SQL语句一旦执行失败或产生错误,整个单元将会回滚。所有受到影响的数据将返回到事物开始以前的状态;如果单元中的所有SQL语句均执行成功,则事物被顺利执行。 继续阅读 >
201907-03 一次 sql 优化经历,太有趣了! HOT 根据业务场景建立覆盖索引 只查询业务需要的字段,如果这些字段被索引覆盖,将极大的提高查询效率 多表连接的字段上需要建立索引 这样可以极大的提高表连接的效率 where条件字段上需要建立索引 排序字段上需要建立索引 分组字段上需要建立索引 Where条件上不要使用运算函数,以免索引失效 继续阅读 >
201907-03 Redis的各项功能解决了哪些问题? HOT 本篇着重从抽象层面来解释下redis的各项功能以及其存在的目的,而没有关心其具体的细节是什么。从而可以聚焦于其解决的问题,依据抽象层面的概念可以使得我们在特定的场景下选择更合适的方案,而非局限于其技术细节。 继续阅读 >
201907-03 PHPer善用接口与Trait HOT 接口是两个php对象的契约。其目的不是让一个对象依赖另一个对象的身份,而是依赖另一个对象的能力。接口把我们的代码和依赖解耦,而且允许我们的代码依赖任何实现了预期接口的第三方代码。我们不关心第三方代码如何实现接口,只去关心他有没有去实现接口。 继续阅读 >
201907-03 猜猜看!一个 TCP 连接能发多少个 HTTP 请求? HOT 一道经典的面试题是从 URL 在浏览器被被输入到页面展现的过程中发生了什么,大多数回答都是说请求响应之后 DOM 怎么被构建,被绘制出来。但是你有没有想过,收到的 HTML 如果包含几十个图片标签,这些图片是以什么方式、什么顺序、建立了多少连接、使用什么协议被下载下来的呢? 继续阅读 >
201907-02 8 种常被忽视的 SQL 错误用法 HOT 数据库编译器产生执行计划,决定着SQL的实际执行方式。但是编译器只是尽力服务,所有数据库的编译器都不是尽善尽美的。 上述提到的多数场景,在其它数据库中也存在性能问题。了解数据库编译器的特性,才能避规其短处,写出高性能的SQL语句。 程序员在设计数据模型以及编写SQL语句时,要把算法的思想或意识带进来。 编写复杂SQL语句要养成使用 WITH 语句的习惯。简洁且思路清晰的SQL语句也能减小数据库的负担 。 继续阅读 >
201907-02 用Redis实现用户积分排行榜 HOT 排行榜功能是一个很普遍的需求。使用 Redis 中有序集合的特性来实现排行榜是又好又快的选择。 一般排行榜都是有实效性的,比如“用户积分榜”。如果没有实效性一直按照总榜来排,可能榜首总是几个老用户,对于新用户来说,那真是太令人沮丧了。 继续阅读 >
201907-02 协程与Swoole的原理,相关应用以及适用场景等 HOT 协程(Coroutine)也叫用户态线程,其通过协作而不是抢占来进行切换。相对于进程或者线程,协程所有的操作都可以在用户态完成,创建和切换的消耗更低。协程是进程的补充,或者是互补关系。 继续阅读 >
201907-02 Nginx代理与反向代理、负载均衡实 通过 Nginx 提供的反向代理和负载均衡功能,可以合理的完成业务的分配,提高网站的处理能力;同时利用缓存功能,还可以将不需要实时更新的动态页面输出结果,转化为静态网页形成缓存,从而提高网站的响应速度。 继续阅读 >
201907-01 PHP控制反转(IOC)和依赖注入(DI) HOT IOC(inversion of control)控制反转模式;控制反转是将组件间的依赖关系从程序内部提到外部来管理; DI(dependency injection)依赖注入模式;依赖注入是指将组件的依赖通过外部以参数或其他形式注入; 两个说法本质上是一个意思。 继续阅读 >
201907-01 平时在PHP编码时有没有注意到这些问题 HOT 编出一手好代码,这个是需要你在平时开发中日积月累的,平时如果你有注意到以下的那些代码的编码,那么祝贺你,你在技能提升这方面已经垫下了一些基础,编写出一手好代码,说白了就是你特么注意到性能这块的问题,代码的优化是也是性能优化的一部分。接下来来看看你平时需要注意到编码。也希望你能养成好习惯! 继续阅读 >