我正在建立一个包含用户生成内容的网站。在主页上,我想显示所有已创建项目的列表,并且我希望能够按查看计数器对它们进行排序。这听起来很简单,但我想要多个计数器。我想知道最后一天、上周或上个月或总体上访问量最大的项目。
我的第一个想法是在项目的 DB 表中创建 4 个计数器列。每天、每周、每月和整体各一个,并创建一个 cron 作业,每 24 小时清除每日计数器,每 7 天清除每周计数器,依此类推。
但我的问题是,如果我想知道在每周计数器清零之后,哪一个是本周观看次数最多的项目,会发生什么?
我需要的是一种有效的方法来创建一个连续的计数器,对于每个太旧的页面视图都会减少,而对于每个新的页面视图都会增加。
现在我正在考虑使用redis 服务器的解决方案,但我还没有任何解决方案。
我只是在这里寻找一个总体思路,但仅供参考,我正在用 Ruby on Rails 开发这个应用程序。