如何在YouTube上跟踪某个项目的观看次数?

时间:2009-05-06 22:49:41

标签: php ruby-on-rails

我希望能够以一种方式跟踪项目的视图,以便我可以看到昨天,上周或任何给定时段内查看的项目最多。 我怎么能用PHP或Rails做到这一点?在Rails中是否有插件,或者使用PHP / memcached有一种简单的方法吗?

3 个答案:

答案 0 :(得分:2)

正如Rémy所说,你可以使这个变得简单并且有一个数据库表来跟踪单个页面视图,虽然这会对视图产生一些写入负载,这可能是不可取的。

折衷方案可能是将每个视图的行写入中间内存表,并定期(可能通过cron作业或每N个视图)更新主表中的聚合计数。如果您的读取负载非常高,那么您可以考虑将该临时计数器存储在memcached中;你会发现,你写入磁盘支持的表的次数越少,你的计数器的容错能力就越小,尽管在一个简单的流行度计数器的情况下,这可能不是关键数据。

一旦您获得了页面查看次数,就可以进行任何您想要的统计分析。

答案 1 :(得分:0)

您可以拥有一个简单的SQL表,其中包含视频ID,日期和整数计数器,并为每个视图递增。

要从IP地址过滤多个视图,请使用包含视频ID和IP地址的表。 每24小时截断一次,并且只有在此表中尚未包含IP地址时才递增计数器。

答案 2 :(得分:0)

对于每个视图,将一些数据保存到SQL表中。

  • 唯一ID
  • 商品ID
  • 日期(例如,unixtime)
  • 用户的IP

然后你可以COUNT(id)WHERE id = number AND date>上周

SELECT COUNT(id) FROM view_table WHERE id = 1 AND date > 1241136000