Redis通过incr和expire实现接口限制访问
2018-02-18 本文已影响11人
快乐的bug制造者
或许你会有这样一个需求,一个接口为了防止被刷,要求每秒只允许请求10次。
其实,redis只需要两个命令即可解决!拿php的laravel来举例子:
<?php
function getA()
{
$redis->incr('A');
$redis->expire('A',1);
$count = $redis->get('A');
if($count > 10){
return $this->failed('499','请求次数过于频繁');
}
//自己接口的业务逻辑
...
}
?>