跟踪每个网页的展示次数/访问次数

时间:2010-06-08 20:13:27

标签: ruby-on-rails tracking impressions

我有一个网站,每个公司都有多个页面,我想根据访问此个人资料的人数显示他们的网页效果。

我们已经确定机器人被排除在外。

目前,我们正在记录数据库中的每个匹配,其中插入(一天中的第一个请求到配置文件)或更新(一天中的以下请求到配置文件)。但是,鉴于请求已从每天数千个变为每天数万个,这些插入/更新会导致严重的性能问题。

假设没有JS解决方案,处理此问题的最佳方法是什么?

我使用Ruby on Rails,MySQL,Memcache,Apache,HaProxy来运行整体节目。

非常感谢任何帮助。

THX

2 个答案:

答案 0 :(得分:2)

http://www.scribd.com/doc/49575/Scaling-Rails-Presentation-From-Scribd-Launch 你应该从幻灯片17开始阅读。 我认为性能不是问题,如果可以为像scribd这样大的网站构建这样的解决方案。

答案 1 :(得分:1)

以下是解决此问题的4种方法,从简单的估算到复杂和准确:

  1. 仅跟踪一定百分比(10%或1%)的用户,然后相乘以获得计算的估算值。
  2. 在给定页面的前50个计数之后,开始将计数的1/13的计数更新为13.这有助于如果在保持小计数准确的同时进行多次计数。 (使用13,因为很难注意到incr不是1)。
  3. 将精确计数保存在缓存层(如内存缓存或本地服务器内存)中,并在它们达到10个计数或已在缓存中保存一段时间后将它们全部保存到磁盘。
  4. 构建一个单独的计数层,1)始终具有内存中可用的当前计数,2)将计数保持到它自己的表/数据库,3)具有调整两个位置的调用