
PHP
文章平均质量分 65
祖传编码手艺人
十年饮冰,难凉热血
展开
-
生产环境的php-fpm配置优化
关于php-fpm的配置优化主要优化一下三个方向:1、慢日志slowlog = log/$pool.log.slowrequest_slowlog_timeout = 5slowlog设置慢日志路径,request_slowlog_timeout设置满足慢日志记录的请求最大超时时间2、运行模式pm = static:始终保持一个固定数量的子进程,通过pm.max_children定义数量pm = staticpm.max_children = 30适用高并发场景,因为设置的为静态数量,原创 2021-04-05 23:57:46 · 367 阅读 · 0 评论 -
php-mongdb 连接无法释放问题
在使用php7的生产环境中遇到MongoDB连接数量飙升,遇到了连接释放不掉的问题,在编写代码时并未使用长连接,排查后得知,在php5.6版本使用的客户端为MongoClient,该客户端是支持在创建连接的时候传入persistent参数指定连接方式是长连接还是短链接。因此在php-fpm运行模式的情况下可以控制连接的释放。php7版本中推出了新的连接客户端MongoDB\Driver\Manager,而目前的主流框架中都是用了这个客户端,该客户端不再支持连接控制,驱动底层默认采用长连接的方式(可能是为了查原创 2021-04-05 18:30:51 · 1007 阅读 · 0 评论 -
一致性hash算法原理及php实现
在使用分布式存储时我们要考虑如何将数据均匀分布在多个节点库中?并且也要方便后期的数据查找。hash取模假设有N个存储节点,根据用户传入的key(key具有唯一性),index = hash(key) % N计算出将数据存储在哪一个节点上。一致性hash为什么不直接使用hash取模的方式,主要原因是:hash取模在容错性和扩展性上较差,如果新增一个节点,或者删除一个节点,那么所有的几点都要重新计算一遍。显然不符合实际实际生产环境。什么是一致性hash?通过一致性hash算法可以把key的has原创 2020-10-14 22:23:37 · 334 阅读 · 0 评论 -
PHP常用的设计模式
php常用的设计模式:1、单例模式(构造方法私有化,对外提供实例化对象的静态调用方法)class Site{ public $siteName; public static $instance = null; private function __construct($siteName) { $this->siteName = $siteName; } // 实例化本类 public static function getI原创 2020-09-25 11:58:19 · 318 阅读 · 0 评论 -
php搭建mysql连接池
一直以来,php一直没有mysql连接池的概念,而在开发中大多数框架也是直接使用了长连接的方式。如Thinkphp就是使用过的长连接。对于并发较小的项目来说,长连接确实可以提高查询效率,php不用每次去与mysql服务器建立连接,只要某个php-cgi连接过mysql,那么本次访问结束后,php不会释放与mysql的连接。当下次请求过来的时候,php就可以复用之前的连接,从而消除了建立连接是的额外损耗。举个栗子:假如有一台mysql服务器MA允许的最大连接数为50。有一台php-fpm服务器PA,PA常原创 2020-08-08 14:47:27 · 4089 阅读 · 2 评论 -
windows环境下的PHP+selenium+Firefox实现自动登录抓取网站cookie等信息
前段时间公司开发了一个商城项目,需要商品数据,订单数据,以及带cookie操作的数据,需要登录某某妈妈后爬取数据,于是乎需要部署一个自动登录获取cookie的信息,于是采用了爬虫登录常用的selenium来实现。selenium一款实现自动化测试的插件,其包含了对浏览器的绝大数操作,具体可以去问度娘说的很详细。一下说一下实现的具体过程。1、第一步就是...原创 2018-05-26 17:36:32 · 4976 阅读 · 0 评论