欢迎光临散文网 会员登陆 & 注册

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

2022-12-23 11:53 作者:KYZ___  | 我要投稿

哈!时隔近两月,我™又回来辣。

虽然上一篇没人读,但我不在意。

本来在写一个在线工具站,需要根据工具使用次数来对工具进行排序。但是整站我的想法是不用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




十分悲伤的,千花阳力,让我们祝福她...

『技术向』php计数类 文本数据库 存档的评论 (共 条)

分享到微博请遵守国家法律