1

我正在努力在Pligg CMS中构建一个模块,该模块将限制用户在 24 小时内可以给予的投票数量。如果他们超过了限制(比如说 40 次/天),就会弹出一个 JavaScript 窗口说“慢下来!” ...类似于 Digg 如何更新他们的系统。

跟踪每日投票的最佳方式是什么?我是否应该在每次投票时查询 MySQL 数据库以检查它们是否超过了限制?或者将数据存储在服务器上某种类型的物理文件中是否更智能?我真的不知道如何构建缓存数据,所以我正在考虑创建一个函数来手动检查每次投票的数量。当然希望听到更好的建议!

4

2 回答 2

4

使用您的数据库并在保存时 - 查询数据库以获取特定时间段内的投票数,如果低于您的阈值,则保存。如果超过阈值,则弹出一个 javascript 警报以通知用户该问题。

于 2011-07-27T01:59:22.223 回答
0

如果体积会很大,您可能希望获得像 memcached 或 membase 这样可扩展的东西来跟踪。如果您使用 memcaced,您会希望实现它,以便每次投票都会更新 memcached 中的计数器,同时添加一个日志条目,该条目将汇总到 MySQL 合并记录中。这样做的好处是,您将把 MySQL 作为一个主源,它可以以任何速度赶上——也就是说,如果它在追赶上落后几分钟也没关系。当您尝试更新 memcached 副本并且如果您发现它不在 memcache 中时,您只需从 MySQL 获取计数,您将不会有 99.99% 的同步计数,这足以在使用达到 40 时执行弹出窗口票。

但是,如果您只希望每小时获得几百票,那么您可能只想使用没有任何缓存操作系统缩放手段的 MySQL。

于 2011-07-27T02:01:41.713 回答