【发布时间】:2017-01-17 18:41:02
【问题描述】:
嗯,标题解释了很多。我即将制作 1 个文件对象(我们称为 analytic.json),其中包含如下对象:
{"country":{"indonesia":
[{"uniqueID":'00000000000',"dateVisit":"20170129","visitTimes":17},
{"uniqueID":'00000000001',"dateVisit":"20170129","visitTimes":10}]}}
在这种情况下,我想跟踪访问者。每个访问者称为 1 个唯一 ID,每次访问者打开一个新页面时,visitTimes 都会被提升。
我关心的问题是,当超过 1000 名访问者同时打开任何页面时,会发生什么?
每次打开和重写此文件时都使用fopen、fwrite 和fclose 完成。有什么方法可以在不使用数据库的情况下做得更好?我是否需要对这些进程进行排队?如何?很多问题,非常感谢。
【问题讨论】:
-
因为你确实提到了最没用的文件 IO 函数,但省略了关于锁定的注释;不,这不是一个可行的方法。对您已经知道的更好的方法有什么确切的疑虑?
-
您需要使用文件锁定,但我们只能阻止此类尝试。基于文件的存储只是错误的方法。数据库是要走的路。
-
在这里添加到狗堆,文件锁定只是一个问题。当您的文件为 4-5GB 时会发生什么?