我想在我的网站上添加一个访问者计数器。
Max Stats:
每分钟100万次浏览
每次页面加载6个查询
所以我问你,是MYSQL和PHP作为一个独特的访问者计数器最好的解决方案?
还是我该用点不同的东西?
发布于 2016-01-31 13:49:37
对于每分钟100万次的浏览量,如命中计数器(此外,重复检查).php / mysql不能很好地工作(除非您有大量的服务器)。
如果您需要实时点击链接,我将使用nginx + redis http://redis4you.com/code.php?id=009 + javascript的组合来实现这一点,而不是使用php和mysql。
Jquery (或javascript)可以检查用户是否有cookie,或者nor,为每个用户(用户+页面)保存一个“唯一的随机散列cookie”(不要仅仅使用ip,因为代理背后的多个用户可以使用相同的ip,例如:大型公司,为互联网、大学、公共wifi等提供代理)。
2-在生成哈希之后,或者如果存在cookie,Jquery可以决定使用哈希作为标识符对nginx服务器执行异步请求。
3- Nginx可以通过上游(非常快)(https://github.com/openresty/redis2-nginx-module)直接与redis交谈,如果需要,它也可以检查cookies。
Redis非常快,可以根据键值(ex: page id)自动增加值(hits),并可以重新引导(与memcache不同)。
5-您可以轻松地从php查询redis (如memcache),以便在任何页面上显示命中计数。
===
另一种可能的方法(但不是实时的)是使用nginx设置一个框并启用访问日志。
在您的站点上,包含一个javascript,它在nginx服务器中调用一个文件,如:http://stats.server.com/hit.js?page=12345&userhash=some_md5_hash_here
2-在nginx服务器上设置一个cron作业,以解析那些日志以获得唯一的视图。
3-Nginx可以轻松地在E3 1230v2机器上每秒处理20K请求。
https://stackoverflow.com/questions/35114304
复制相似问题