今天学习的时候学到了接口频繁访问 然后就写了下面这段代码 大家一起来瞅瞅看看,有不对的地方请指出谢谢
public function index()
{
$redis = new Redis();
//接口频繁请求防御措施
//取出本机的客户端ip
$ip = $_SERVER['REMOTE_ADDR'];
//从缓存中取出ip访问次数
$ipData = $redis->get($ip);
//取出redis的key的过期时间
$ipExpireTime = $redis->ttl($ip);
if ($ipExpireTime<=0){
$ipExpireTime = 60;
}
//如果非空判断是否恶意请求
if (!empty($ipData)){
if ($ipData >= 10){
return show(10003,'','请不要频繁请求了啦,人家会痛哒~~');
}
}
$data = \app\newsApi\model\News::paginate(6);
//存id请求次数
$i = 1;
$redis->set($ip,$ipData+$i,$ipExpireTime);
return show(0,'操作成功了哦',$data);
}