新手问题 页面的计数功能

luliangshu · 2014年03月19日 · 最后由 hz_qiuyuanxin 回复于 2014年03月19日 · 2491 次阅读

我们的项目是

用户可以在我们的项目里面 创建自己的网站

我们想为每一个网站增加访问计数功能,用户可以在后台看见每天的访问量。然后列出每一天的访问量用图表来表示。

这里访问数据如何存储比较好。访问一次就在 mysql 里面增加一条数据?那数据量要不了多久就相当大了。 将来查询也费时。

由专门的 http server 来记录访问日志,然后后台程序分析日志,将统计结果写到数据库里

您的日 PV 多少?

@lululau 有在考虑这种方案 读 log 日志 将来会有什么性能问题吗(log 日志也会越来越大)

@swordray 我们的日 pv 不大 但是用户的 pv 没法预知

@swordray 项目还没正式上线。这里主要考虑用户自己的网站的 pv。而不是我们的 pv

#6 楼 @luliangshu 可以与用户沟通一下 预估用户 PV,才好做架构方案

#3 楼 @luliangshu 有考虑过日志这种东西不是一直往一个上面写的吗?是可以分项目分时间分逻辑的。而且通过日志进行细节方面的统计也会较少应用服务器、数据库很大的压力。 不过要是访问量比较小的情况下,写数据库也是一个不错的选择。

如果仅仅是知道访问量的话,可以使用 Redis 来处理,如果怕数据丢,你可以每小时同步一次到 MYSQL。

Redis 的 key 可以设计为:'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

需要 登录 后方可回复, 如果你还没有账号请 注册新账号