API访问频率限制的解决方案

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

有时候我们需要限制一个API访问的频率,例如单用户一分钟之内只能访问多少次。类似于这样的需求很容易用Redis来实现。?phprequire('predis/src/Autoloader.php');$redis=newPredis\Client(array('scheme'='tcp','host'='127.0.0.1','port'='6379'));$redis-auth('123456');//这个key记录该用户1的访问次数$key='user:1:api_count';//限制次数为10$limit=10;$check=$redis-exists($key);if($check){$redis-incr($key);$count=$redis-get($key);if($count10){exit('yourhavetoomanyrequest');}}else{$redis-incr($key);//限制时间为60秒$redis-expire($key,60);}$count=$redis-get($key);echo'Youhave'.$count.'request';//......//API业务逻辑echo'br/';echo'Hello,World!Thisistheapicontent.';?上面的代码实现了,在60秒内单用户最多只能访问API10次。这样的需求使用缓存来处理是非常合适的,当用户量很多的时候,计数量会很大,而且这些数据并不需要长久保存,用数据库存储显然不划算。

1 / 2
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功