Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/227.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/53.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何跟踪YouTube上的项目视图?_Php_Ruby On Rails - Fatal编程技术网

Php 如何跟踪YouTube上的项目视图?

Php 如何跟踪YouTube上的项目视图?,php,ruby-on-rails,Php,Ruby On Rails,我希望能够跟踪某个项目的视图,以便查看哪些项目是昨天、上周或任何给定时期浏览最多的。 如何使用PHP或Rails实现这一点?Rails中是否有用于此的插件,或者是否有一种使用PHP/memcached的简单方法?您可以有一个简单的SQL表,其中包含视频id、日期和整数计数器,每个视图递增 要从IP地址筛选多个视图,请使用包含视频id和IP地址的表。 每24小时截断一次,仅当ip地址不在此表中时才递增计数器。对于每个视图,将一些数据保存到SQL表中 唯一ID 项目ID 日期(例如unixtime

我希望能够跟踪某个项目的视图,以便查看哪些项目是昨天、上周或任何给定时期浏览最多的。
如何使用PHP或Rails实现这一点?Rails中是否有用于此的插件,或者是否有一种使用PHP/memcached的简单方法?

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

要从IP地址筛选多个视图,请使用包含视频id和IP地址的表。
每24小时截断一次,仅当ip地址不在此表中时才递增计数器。

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

  • 唯一ID
  • 项目ID
  • 日期(例如unixtime)
  • 用户IP
然后您可以计算(id),其中id=数字和日期>上周

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

正如Rémy所说,您可以简化这一过程,并使用一个数据库表跟踪各个页面视图,尽管这可能会导致视图的写入负载,这可能是不可取的

一种折衷方法是将每个视图的一行写入内存中的中间表,并定期(可能通过cron作业或每隔N个视图)更新主表中的聚合计数。如果您的读取负载非常高,那么您可以考虑在MimcHACK中存储临时计数器;正如您所看到的,写入磁盘备份表的频率越低,计数器的容错性就越差,尽管对于简单的流行计数器,这可能不是关键数据


一旦你有了页面浏览量,你可以做任何你喜欢的统计分析。

那么,有什么东西可以帮我完成统计分析部分吗?+1。如果您想要处理严重的流量(比如头版digg),那么在每个页面视图中写入数据库是不可接受的。