10

02-2017

PHP数组组合穷举方法

某些业务场景下,我们会用到组合穷举方法,这里整理几个穷举方法 1、不限顺序的数组组合穷举:

20

12-2016

PHP检查微信域名屏蔽接口

微信里域名总是被微信拦截,或者域名被微信屏蔽,辛辛苦苦推广,却不知道微信里域名爆红了。给大家介绍一个微信分享域名防屏蔽 防微信拦截网址系统 可以实时查询域名是否被微信拦截,实时检测微信屏蔽域名api,有用没用自己试试就知道了。 使用方法多种多样。

memcache内存分配策略及内存计算

今天研究了一下memcache的内存分配策略,发现其和redis的确是有很大不同的,很多人知道memcache是提前预占用内存的,并且,其内存的占用是定长的,所以其内存的占用是可以被计算出来的。但是,其分配策略不是那么简单的,其合理的设置调优,也并不是那么容易的事情。下面就讲一下我的理解。以及-m参数认为无效的原因。 理解memcache的确必须先理解 slab、page、chunk 三个概念。page组成了slab,chunk组成了page,chunk是数据真实存储的位置,默认情况下,page的大小是1M,当然这个可以通过参数修改,chunk默认从96B开始,以1.25的倍数在slab区间增长。即,slab1 的chunk为96B,那slab2的所有chunk都是120B,那slab3的所有chunk就是150B,依次类推。因为page大小都是1m,那么相当于chunk的个数就确定了,如果slab1有一个page,那么就应该有10922个chunk,在内存未达到配置内存上限的时候,这个page是可以增加的,但是这里增加的单位就是page,也就是1M,比如已经存了10922个96B以下数据的key,再存一个新的,内存又没有达到配置上限,就会page增加,相应的也就再增加10922个chunk。下面具体代码看一下

shell监控load以及小数判断

简单的shell监控服务器负载的话,可用使用uptime命令,获取load,然后根据使用awk,和你预定义阈值对比 只不过shell小数做比较需要特殊处理一下

纯php做类似php-fpm多进程管理服务

php-fpm,以及现在比较火的workman,swoole,其都是使用的多进程的管理模式,使用manger进程,管理其子进程,今天通过纯php做了一个类似的小东西,这样以后再做守护脚本的时候,可以使用这种方式,好处就是,多进程,更能利用多核的优势,并且可以做平滑重启。 本代码实现的功能,可以自定义子进程数,比如你定3个子进程,运行会产生1个manger进程,3个work进程,通过linux信号,来实现,进程的平滑重启。

file_put_contents和fwrite对比,以及他们在高并发下问题

先说结论,单次性能,file_put_contents要比fwrite好,这个也很好理解,因为写入文件,file_put_contents就一行代码,fwrite至少三行,虽然不是说代码行少就一定快,但就这个写入功能来说,file_put_contents就等于fopen fwrite fclose,之所以前者快,就是因为一次api交互,直接干了这三件事,后者有三次api的开销。

php fseek读取超过内存大小文件

可能有一些人就听过这样的面试题,做web程序的,的确在类似这样的问题上有很大的思路上的差异。包括我们做批处理的脚本程序,其实和我们普通的web程序是有区别的。后面我会抽出时间通过file_put_contents函数说一下类似的区别。这篇文章说一下操作大文件的处理,一种方式,当然做切割,当然,还有一种方式就是,我们可以通过fseek制定指针读取位置;

PHP用curl_multi并行获取多个HTTP接口数据

最近一直想要找一些PHP并行的rpc框架或者扩展,看了yar,看的过程中,发现其实php自带curl扩展也是可以做到并行处理的,只不过平时我们不习惯这样用,其实,如果我们的接口比较多,但是这些接口又相互独立,可以使用这样的方式,这样会大大缩短整个页面的运行时间。

20

09-2016

php插入mysql方式性能分析

一直以来各种人都在争论mysql的插入性能,当然我这里说的人大部分是phper,使用的场景也是php操作mysql,有人说一秒怎么也要几万,有的说几千,还有的说几百。有的也的确是实验过,但是,其实,所有的结果都是因为有前置条件的。我这里就实际操作了一下。对比了一下,php操作mysql,在有索引,无索引,innodb开启事务、和不使用事务,以及mysql load data infile几种方式的对比。

9

09-2016

php等守护进程监控脚本

php等守护进程监控脚本

此脚本用户守护监控进程的执行情况,因为有的时候,我们用各类开发语言做的守护进程可能会因为一些特殊情况被退出,所以此脚本就是为了重启这些进程