扫码关注官方订阅号
php 每天限制一定的查询量,如何实现呢?
闭关修行中......
楼上正解。如果是单用户限制查询量,笨重的方法就是写进数据库,依次递增,晚上12点清零,清零这里可能要用到定时任务。不错的方法就是以用户ID+标识作为key写进redis。如果不是根据单用户进行限制,而是根据全部查询量进行限制,除了上述的两种方法还有一种是写进text文件中,用到的时候读取,比较,+1,写入
用户ID+标识
key
读取
比较
+1
写入
其实综合上述,无非需要的动作就是取值,比较,+1,写入,只是媒介不一样,视需求而定吧。对了,需要的话也可以配合定时任务使用。
取值
简单说,那就是查询一次记一笔呗。 和人类限制查询原理上没什么区别啊。
基本思路: 查询一次,数据库递增一次。
查询量大了性能自然会很烂。
那就上Redis之类的,每次递增先缓存到内存里面提高效率。每隔一段时间/一定数量整体更新一次
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
楼上正解。
如果是单用户限制查询量,笨重的方法就是写进数据库,依次递增,晚上12点清零,清零这里可能要用到定时任务。
不错的方法就是以
用户ID+标识作为key写进redis。如果不是根据单用户进行限制,而是根据全部查询量进行限制,除了上述的两种方法还有一种是写进text文件中,用到的时候
读取,比较,+1,写入其实综合上述,无非需要的动作就是
取值,比较,+1,写入,只是媒介不一样,视需求而定吧。对了,需要的话也可以配合定时任务使用。
简单说,那就是查询一次记一笔呗。 和人类限制查询原理上没什么区别啊。
基本思路: 查询一次,数据库递增一次。
查询量大了性能自然会很烂。
那就上Redis之类的,每次递增先缓存到内存里面提高效率。每隔一段时间/一定数量整体更新一次