php - 独特的高流量访客计数器

时间:2016-01-31 13:22:16

标签: php mysql unique counter visitor-statistic

我想在我的网站上添加一个访问者计数器。

最大统计数据:

每分钟100万次观看次数

每页加载6个查询

所以我问你, MYSQL和PHP是否是唯一的访问者计数器最佳解决方案?

或者我应该使用不同的东西?

1 个答案:

答案 0 :(得分:2)

每分钟有100万次观看,你可以计算点击计数器的视图(此外还有重复检查)... php / mysql不会很好用(除非你有一大堆服务器)。

如果你需要实时点击couting,我会使用nginx + redis http://redis4you.com/code.php?id=009 + javascript的组合,而不是使用php和mysql。

1 - Jquery(或javascript)可以检查用户是否有cookie,如果没有,则保存一个"唯一的随机哈希cookie"对于每个(用户+页面)(不要只使用ip,因为代理后面的多个用户可以使用相同的ip,例如:拥有代理互联网,大学,公共wifi等的大公司)。 / p>

2 - 生成哈希后,或者如果cookie存在,Jquery可以决定使用哈希作为标识符对nginx服务器执行异步请求。

3 - Nginx可以通过上游(非常快)(https://github.com/openresty/redis2-nginx-module)直接与redis对话,如果需要,它还可以检查cookie。

4 - Redis非常快,可以根据键值(例如:页面ID)自动递增值(命中),幸存重启(与memcache不同)。

5 - 您可以轻松地从php查询redis(如memcache)以在任何页面上显示点击次数。

===

另一种可能的方式(但不是实时)将设置一个带有nginx的框并启用访问日志。

1 - 在您的网站上,添加一个javascript,调用该nginx服务器中的文件,如下所示:http://stats.server.com/hit.js?page=12345&userhash=some_md5_hash_here

2 - 在nginx服务器上设置一个cron作业,以解析这些日志的唯一视图。

3 - Nginx可以轻松地在E3 1230v2机器上每秒提供20K请求。

相关问题