您可以使用php memcache之类的东西将与每个键关联的计数器直接存储在内存中.然后,您可以每天一次将所有值备份到数据库中,以防服务器发生故障而丢失内存中的数据,您将只丢失部分一天的计数.
根据您提供的密钥数量,您必须确定这将使用多少内存,以及它是否是一个实用的解决方案.
您也可以使用中间地点,只缓存每个月达到限制的那些.因此,每当一个键达到它的最大请求数时,你就会在内存中标记它.然后在每个月末,当你重置数据库中的计数时,你也将它们全部清除内存.
这样您就可以向数据库发出请求,直到用户达到限制(因为您无论如何都要查询数据库),然后停止查询表.