在共享内存中记录访问

Log visits in shared memory

我正在尝试找到使用 PHP 记录访问的最佳方式。现在我每秒大约有 3000 个请求,我将每次访问都写到 CSV 文件中。我想知道以某种方式将每次访问记录在内存中然后在 100 000 条记录后将其转储到 CSV 文件是否更快?到目前为止,我已经检查了 shmop apcmemcache,但找不到合适的解决方案。

最好的方法是使用 Lua 和共享内存来存储日志条目,然后创建一个计时器,每隔 X 秒检查一次记录条目的大小,并使用一个 co-socket 将缓存转储到一个文件或 sql 数据库。应该都是非阻塞的。是的,您可以在将请求传递给 PHP 之前将请求传递给 Lua。 您还可以使用 nginx 默认日志文件缓存(缓冲区)并单独解析日志。