如何限制用户24小时内可以投票的金额?

时间:2011-07-27 01:38:59

标签: php jquery mysql ajax pligg

我正在努力在Pligg CMS中构建一个模块,这会限制用户在24小时内可以获得的投票数量。如果他们超过了限制(假设是40 /天),那么JavaScript弹出窗口会说“减速!” ......类似于Digg如何更新他们的系统。

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

2 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:0)

你可能希望获得像memcached或membase这样可扩展的东西来跟踪voloume是否会很大。如果您使用memcaced,您可能希望实现它,以便每次投票都将更新memcached中的计数器并同时添加一个日志条目,该日志条目将汇总到MySQL合并记录中。这样做的好处是,你将把MySQL作为一个主要来源,它可以以任何速度进行捕获 - 也就是说,如果在cacthing up中几分钟后它就没那么重要了。当你尝试更新memcached副本时,如果你知道它不在memcache中,你只需从MySQL获取计数,你将不会有99.99%的同步计数,当使用达到40时,对于实现弹出窗口是非常好的票。

但是,如果你只希望每小时获得一些数量的投票,那么你可能只想使用MySQL而不需要任何缓存扩展方式。