Php 如何限制用户在24小时内的投票量?

Php 如何限制用户在24小时内的投票量?,php,jquery,mysql,ajax,pligg,Php,Jquery,Mysql,Ajax,Pligg,我正在努力构建一个模块,在这个模块中,用户可以在24小时内获得最多的投票。如果他们超过了限制(比如说40/天),JavaScript弹出窗口会显示“慢下来”。。。类似于Digg更新系统的方式 跟踪每日投票的最佳方式是什么?我是否应该在每次投票时查询MySQL数据库以检查他们是否超过了限制?还是将数据存储在服务器上某种类型的物理文件中更明智?我真的不知道如何构建缓存数据,所以我正在考虑创建一个函数来手动检查每次投票的数量。当然希望听到更好的建议 使用数据库并在保存时-查询数据库中特定时间段内的投票

我正在努力构建一个模块,在这个模块中,用户可以在24小时内获得最多的投票。如果他们超过了限制(比如说40/天),JavaScript弹出窗口会显示“慢下来”。。。类似于Digg更新系统的方式


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

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

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

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


然而,如果你只希望每小时获得几百张选票,那么你可能只想使用MySQL,而不需要任何缓存操作系统的扩展手段。

如果卷很大,你可能想获得一些可扩展的东西,比如memcached或membase。如果您使用memcaced,您可能希望实现它,以便每次投票都会更新memcached中的一个计数器,同时添加一个日志条目,该条目将汇总到MySQL合并记录中。这样做的好处是,您将保持MySQL作为一个主源代码,它可以以任何速度赶上——也就是说,如果它在计算过程中落后几分钟,这并不重要。当您尝试更新memcached副本时,如果您发现它不在memcache中,您只需从MySQL获取计数,就不会有99.99%的同步计数,这足以在使用达到40票时实现弹出窗口


但是,如果您只希望每小时获得几百张选票,那么您可能只想使用MySQL,而不需要任何缓存操作系统扩展手段。

您希望一天总共获得多少选票?如果达到每秒数百次,那么单台服务器MySQL db可能无法解决这一问题。(如果你想要并发性和合理的存储空间,物理文件是不可能的)@bdares不太确定。但是这个用户群大约有400个成员,所以我无法想象会有整整一吨。考虑将每天的投票限制在50-100左右,这样我们就可以限制互动的数量。你预计一天的总投票数是多少?如果达到每秒数百次,那么单台服务器MySQL db可能无法解决这一问题。(如果你想要并发性和合理的存储空间,物理文件是不可能的)@bdares不太确定。但是这个用户群大约有400个成员,所以我无法想象会有整整一吨。考虑将每天的投票限制在50-100左右,这样我们就可以限制互动的数量。太棒了!非常感谢,听起来你以前必须这么做。或者你只是在程序设计方面非常聪明!非常感谢,听起来你以前必须这么做。或者只是在程序设计方面非常聪明。