/**
* 限制频繁请求拦截处理
* 1、先判断用户是否有访问过。没有进行存储
* 2、访问过,自增访问数量。
* 3、计算经过了多久。
* 4、然后就是产品经理提的规则
*/
public function test(){
$user_id = 'user_id_'.'100';
$valid_time = 600;
$redis = new Redis(config('redis'));
$redis = $redis->handler;
if (!$redis->exists($user_id)){
$redis->setex($user_id,$valid_time,1);
}else{
$count = $redis->incr($user_id);
$ttl = $redis->ttl($user_id);
$pass_time = $valid_time - $ttl;
if ($pass_time <= 1){
if ($count > 1){
echo '1秒内请求不能超过1次';
}
} else if ($pass_time <= 10){
if ($count > 3){
echo '10秒内请求不能超过3次';
}
}else if ($pass_time <= 60){
if ($count > 5){
echo '60秒内请求不能超过5次';
}
}else if ($pass_time <= 180){
if ($count > 10){
echo '180秒内请求不能超过10次';
}
}else if ($pass_time <= 300){
if ($count > 15){
echo '300秒内请求不能超过15次';
}
}else if ($pass_time <= 600){
if ($count > 20){
echo '600秒内请求不能超过20次';
}
}
}
}
Reids 限制频繁请求拦截处理
猜你喜欢
转载自blog.csdn.net/qq_38776443/article/details/89538625
今日推荐
周排行