『技术向』php计数类 文本数据库 存档

哈!时隔近两月,我™又回来辣。
虽然上一篇没人读,但我不在意。
本来在写一个在线工具站,需要根据工具使用次数来对工具进行排序。但是整站我的想法是不用MySQL,安装和迁移都能方便许多,对于环境的要求也没那么高。考虑到后期浏览量可能会升高(幻想),我想起另一个API站在未接入MySQL时,对于API调用次数经常清零的问题,所以写了这么个类。
我一个在读高中生,不是专业的开发人员。文章或代码可能存在错误,欢迎各位大佬指出我的错误或者提出修改建议,谢谢!
前情提要
非MySQL时,较为简单的file_get_contents()加file_put_contents()的搭配在高并发下经常发生文件锁死,继而导致原有计数丢失。
问题已经得到解决,写了这么个类,在此发布并留档。源代码及测试请见下方内容。
效率测试
测试环境:CentOS7 2h4g 腾讯云 轻量应用服务器 php7.3
测试内容:8000次 x 5进程 同时运行
简易方法
测试代码:
平均耗时:5.438 秒
数据清空:347 次
计数类
测试代码:
平均耗时:5.247 秒
数据清空:0 次
可见效率略有提高(?)但是意义不大,更重要的是全程没有出现数据清空的状况了。
其他说明
这个类主要是为了防止文件锁死导致数据清空,适用于统计网页浏览次数等只需要模糊数据的内容,不能解决精准统计的需求,对于过多的计数项目可能还会存在io瓶颈的问题。
有条件仍然推荐使用MySQL或者Redis实现功能,效率更高、更为保险。
源代码
./Count.php
十分悲伤的,千花阳力,让我们祝福她...