随笔分类 - 杀鸡要用宰牛刀
返璞归真 高屋建瓴 研究最初的php问题
摘要:用 var_export 来将数据存储到 php 配置文件里的时候,发现var_export转出来的变量定义还是 array()这种形式,不能转为[],所以自己写个函数来转换一下,代码如下: <?php function format_var_export($data = []) { $string
阅读全文
摘要:基于我上次在这里发现的问题,就是一次性投递20个消息,用sleep等待后发现,最后一个任务需要等前面19个都跑完才能执行,所以这里做一下改进。 client.php <?php $client = new GearmanClient(); $client->addServer('127.0.0.1'
阅读全文
摘要:偶然发现了这个gearman,觉得这玩意儿挺好用,非常适合PHP运行一部分业务。 话不多说,安装一下。 使用apt查找 sudo apt search gearman 找到了这个 gearman/bionic,bionic 1.1.18+ds-1 all Distributed job queue
阅读全文
摘要:今天无意间看到这个仓库讲php关于 BeanStalkd 的扩展,然后就去了解了一下beanstalkd,才知道它可以用来做队列服务。 话不多说,安装一下试试。 首先 sudo apt search beanstalk 搜索一下发现 Sorting... Done Full Text Search.
阅读全文
摘要:apt搜索一下 $ sudo apt search mydumper [sudo] password for zhaoyao: Sorting... Done Full Text Search... Done mydumper/focal,now 0.9.5-1.1 amd64 High-perfo
阅读全文
摘要:如果你有一批数据需要调用远程接口处理,而远程接口处理时间很长,比如需要1秒左右,那10条数据就是10秒,你的程序就要10S才能结束,而这样的话一旦接口提供方有点问题,就需要20秒 30秒甚至更久,这样就给我们带来了极大隐患,虽然我们可以使用设置超时来避免这样的长久等待,但是如果串行化不解决的话,程序
阅读全文
摘要:这是一个高性能的日志记录扩展,能迅速帮你格式化的写入日志文件。 首先来看安装: sudo pecl install seaslog 一句话搞定,然后更新php.ini配置文件 添加启用以及一部分配置 extension=seaslog [SeasLog] ;默认log根目录 seaslog.defa
阅读全文
摘要:在上次学xattr的时候用它简单实现一个中间件,我去了解了一下rabbitmq这个消息中间件,感觉理论上还是挺好用的,给一般并发量的系统用足够了。 首先安装这个服务。 sudo apt search rabbitmq 发现了这个 rabbitmq-server/focal-updates,focal
阅读全文
摘要:在了解到PHP鸟哥还有这个扩展后,我安装尝试了一下 在这里有介绍 https://pecl.php.net/package/yaconf 这里有更详细的代码和说明 https://github.com/laruence/yaconf 好了,到这里git下载代码 git clone https://g
阅读全文
摘要:今天突发奇想,如果创建一个文件,不写入内容,就如我们之前说的写入扩展属性能快速查找数据,但是在SSD下只能写4000个左右的字符,那么有没有更快速的方法存储这样的信息呢? 我想到可以同文件名来存储信息,测试了一下发现 <?php $file = './file/'; for ($i=0; $i <
阅读全文
摘要:今天偶然发现自己电脑还有一个隐藏硬盘,500G的我平时没挂载,就没用到,然后这次就给它挂载了,然后发现读取文件,操作xattr都很慢,比之前速度慢10倍左右,猜测可能是固态硬盘和机械硬盘的差别关系。看样子这个500G的是机械硬盘了。 然后想到上次说发现xattr 写入最多能写4040个字符,这个 h
阅读全文
摘要:有时候想把一个很大的数尽量用更少的空间存储起来,那么就可以采用很大的进制来存储它,比如说,一个大于等于10小于等于16数字使用10进制就需要两位,使用16进制就只需要1位,那就等于帮程序省了一位的空间,数字越大,进制越高,效果也就越明显。 举例如下: 1000000的转换比较 二进制 八进制 十进制
阅读全文
摘要:距离上次接触sqlite3已经快一年了,去年这篇文章讲跟着菜鸟教程学python操作sqlite3,https://www.cnblogs.com/lizhaoyao/p/13717381.html 现在回头看看,在php的环境下用sqlite3也是小项目值得选择的。 老生常谈的安装 install
阅读全文
摘要:由于之前看了xattr的写入效率,这里简单的实现一下生产者消费者模型的高速写入。 生产者(让他创建40万条数据) <?php // 生产者 不断的生产大量数据 但是总会有停止的时候(本业务功能结束) for ($i=100000; $i < 500000; $i++) { $file = "./no
阅读全文
摘要:观摩了这篇文章后https://www.cnblogs.com/zyblog-coder/p/15013804.html 学到了php还有操作文件扩展属性的扩展 快速安装了一下 sudo apt-get install xattr sudo pecl install xattr 然后编辑php.in
阅读全文
摘要:突发奇想的想把切换为www-data用户去看看会怎么样.然后做了一个尝试 由于我安装了lamp环境,所以有www-data用户,用它可以来执行web php ,以及安全放心的跑cli(避免权限过高执行危险命令) 所以先看看自己这个www-data用户情况 查看组 cat /etc/group|gre
阅读全文
摘要:昨天听到隔壁组讨论说按照逗号分割implode导出到csv文件,传递文件数据给别人的时候,别人按照都好explode分割回来多一个单元格,他们调查了一下发现是内容里面就是有逗号导致的,居然就这么卡住了,说不知道怎么处理. 我还挺感慨这思维逻辑,就不知道反向推断一下吗? 既然程序导出的时候不知道逗号该
阅读全文
摘要:背景:昨天看了ice框架后,感觉运行效率非常高,与其差不多的就是yaf了,然后因为yaf没有orm有点遗憾,不过我就这样去找了找orm,产生了这样的感想 今天又看了一下yaf框架,确实和ice差不多,大家都到极致了,几乎不相上下吧,然后确实没有ORM,那我想到了可以自己添加ORM,查来查去都是那些c
阅读全文
摘要:ice框架是php扩展框架 概念和 yaf Phalcon 那种框架类似,就是把框架编译为C扩展,调用起来就等于调用C,这样框架本身的加载消耗就省下来了. pecl https://pecl.php.net/package/ice 官网 https://www.iceframework.org 看了
阅读全文
摘要:php的各个序列化反序列化对比如下 function 10万条记录的序列化并写入(ms) 10万条记录文件读取并反序列化(ms) 100条记录序列化并写入(ms) 100条记录文件读取并反序列化(ms) serialize 106-200 85-95 0.18-0.34 0.15-0.22 json
阅读全文