我们的项目是
用户可以在我们的项目里面 创建自己的网站
我们想为每一个网站增加访问计数功能,用户可以在后台看见每天的访问量。然后列出每一天的访问量用图表来表示。
这里访问数据如何存储比较好。访问一次就在 mysql 里面增加一条数据?那数据量要不了多久就相当大了。 将来查询也费时。
由专门的 http server 来记录访问日志,然后后台程序分析日志,将统计结果写到数据库里
您的日 PV 多少?
@lululau 有在考虑这种方案 读 log 日志 将来会有什么性能问题吗(log 日志也会越来越大)
@swordray 我们的日 pv 不大 但是用户的 pv 没法预知
#4 楼 @luliangshu 大概几位数?
@swordray 项目还没正式上线。这里主要考虑用户自己的网站的 pv。而不是我们的 pv
#6 楼 @luliangshu 可以与用户沟通一下 预估用户 PV,才好做架构方案
#3 楼 @luliangshu 有考虑过日志这种东西不是一直往一个上面写的吗?是可以分项目分时间分逻辑的。而且通过日志进行细节方面的统计也会较少应用服务器、数据库很大的压力。 不过要是访问量比较小的情况下,写数据库也是一个不错的选择。
如果仅仅是知道访问量的话,可以使用 Redis 来处理,如果怕数据丢,你可以每小时同步一次到 MYSQL。
Redis 的 key 可以设计为:'your_app:client:id:visit_count
'your_app:client:id:visit_count
如果涉及到数据统计,可以参考
http://edgeguides.rubyonrails.org/active_support_instrumentation.html#subscribing-to-an-event http://api.rubyonrails.org/classes/ActiveSupport/Notifications.html