处理我想要捕捉和显示的访问者/用户统计数据的最有效方法


The most efficient way to handle visitor/user statistics that I want to catch and display?

我正在构建一个链接目录样式的web应用程序。为了简单起见,以下都是示例。在我的网站上,我有10个类别。每个类别都有自己的页面,每个页面都有100个表格格式的链接。每个链接都有许多列,如名称、id、url等,但这个问题的重点是"上次查看的时间"列。如果用户/访问者从未单击过该链接,它将显示默认文本。但是,如果用户在访问之前单击了该链接,则它将显示用户上次访问该链接的时间/日期。

我设置它的方式是,当用户单击链接时,他们会被发送到另一个页面/脚本(使用GET方法。链接1附加了?rid=1)。我使用开关控件。(案例值是$_GET执行代码块中的1)这个代码块是我需要用户统计caputuring的地方。一旦函数运行并捕获和存储访问统计信息,用户就会通过标头位置发送到请求的资源。因此,下次用户在类别页面上看到链接列表时,他们访问的链接现在将显示他们访问的时间

在我的生产网站上,我有多达1000个链接。如果他们点击了每个链接,它会在每个链接旁边显示他们上次点击的时间。重要的是,包括用户在内的用户将在点击每个链接时登录。

你会怎么做?是否将信息存储在cookie或数据库中?由于有1000个链接,因此可能有1000个不同的值。提前谢谢。

这不是很多数据,所以你可以同时做这两件事,既可以存储在数据库中,也可以存储在cookie中。理想情况下,为了提高性能,您应该先从cookie中检索,如果cookie不包含任何与该链接相关的用户信息,则应先从数据库中检索。根据您的性能要求和预期的流量,您可以使用数据库存储、内存存储和异步更新。

  • 数据库更新是即时的,但可能会影响整体性能和页面加载时间
  • 内存缓存(如apc)提供了最佳性能,但数据需要与数据库同步
  • 异步更新非常适合平衡性能,因为您可以在页面加载后使用JavaScript从客户端注册视图,而不是在服务器端执行php期间

就我个人而言,如果可能的话,我会使用所有3个,因为它为未来的发展提供了一个很好的平台。