= =偶然看到篇文章,恰巧之前碰到过,当时是用字符串搞定的,按兴趣跟进,发现有必要总结一下其他方式。

原因:PHP7.1后php.ini里的serialize_precision默认为17,低于15就会避免问题发生。
所以可以选择修改php.ini,也可以在php文[……]

阅读全文

高并发时,会出现php-fpm线程不够用的情况,此时一般需要调整backlog,之前也分析过:如果worker进程不够用,master进程会prefork更多进程,
如果prefork达到了pm.max_children上限,worker进程又全都繁忙,这时maste[……]

阅读全文

以下内容全文转载自:无风的雨写的php 读取超大文件
PHP开发很多时候都要读取大文件,比如csv文件、text文件等。这些文件如果很大,比如10个G。这时,直接一次性把所有的内容读取到内存中计算不太现实。遇到这种情况,往往觉得PHP太弱,实则不然。利用生成[……]

阅读全文

用到Redis。
最初的逻辑:代码里判定只要token失效就会取toekn更新到Redis中。问题:显而易见,分布式并行后,可能同时有两台或以上同时更新,导致其他设备取回的token失效,然后循环往复,将API次数耗尽。经浩哥指点优化后的逻辑:[……]

阅读全文

有个需求,用片名做数组键名key,因为涉及到了一个分数字段的排序,发现使用array_multisort排序后,结果出现了0键名的奇怪数据。
经过诊断,发现是2046这部影片名造成的问题。查了下函数说明,确认了原因:定义和用法array_multisor[……]

阅读全文

有个系统,前端有个数据查询功能,原始逻辑大概是这样的:前台指定查询开始和结束时间,后台调用MongoDB,提取时间范围内的全部数据直接吐出csv格式文件。
当初估计没考虑数据量太大的情况,后来随着驻地的用户量上升,每日的数据量都变的很庞大,问题随之而来~[……]

阅读全文

测试同学压测性能一般,所以自己写了个并发的测试,发现每次超过500,都是几乎必定511后出现空返回~
经过查找,找到个靠谱的解释:如果worker进程不够用,master进程会prefork更多进程, 如果prefork达到了pm.max_children上[……]

阅读全文