导航首页 »  PHP代码  » PHP接口访问频率限制

PHP接口访问频率限制

王朝235网址导航 2021-10-04 69 ℃
/**

 * @param $uid

 * @return bool|int

 * 检测用户接口访问频率

 */

function api_frequency_visits ($uid) {

    $key = "user:{$uid}:api:frequency";

    $redis = new Redis();

    $redis->connect('127.0.0.1');

    $data = $redis->hGetAll($key);

    //需要删除的key

    $del_key = [];

    //时间内访问的总次数

    $total = 0;

    //时间内最大访问次数

    $max_frequency = 10;

    //当前时间

    $now_time = time();

    //限制时间

    $limit_time = 60;

    foreach ($data as $time=>$count) {

        if ($time < $now_time - $limit_time) {

            $del_key[] = $time;

        } else {

            $total += $count;

        }

    }

    //存在需要删除的key

    if ($del_key) {

        $redis->hDel($key, ...$del_key);

    }

    if ($total >= $max_frequency) {

        return false;

    }

    return $redis->hIncrBy($key, $now_time, 1);

}

$uid = 1;

$result = api_frequency_visits($uid);

if (!$result) {

    echo  json_encode(['code'=>0, 'msg'=>'操作过于频繁', 'data'=>[]]);die;

}

echo  json_encode(['code'=>1, 'msg'=>'', 'data'=>[

    'uid'=>$uid,

    'other'=>rand()

]]);die;

限制时间,限制次数这些都可以修改,包括根据用户id也可以换成自己想要的限制,比如IP等。


免责声明
文章内容由王朝235网址导航整理发布,仅供学习交流使用,不代表本站的观点和立场,具体内容请自行甄别。
加入好处
简单来说就是可以给您的网站提升权重排名,增加外链和网站流量!如果细分的话那么有如下几个好处!
让您的网站更快、更多地被搜索引擎收录
让您的网站名称的关键词在搜索引擎的搜索结果的第一页甚至第一个
通过本站这个分类目录平台从而给您的网站带来巨大流量
如您网站被搜索引擎屏蔽,王朝235网址导航永久缓存贵站信息,通过这个页面浏览者照样借助王朝235网址导航进入您的网站!
温馨提示:如果贵站想上百度,希望贵站能添加本页面为友情链接,感谢您对本站的支持!
<a href="http://www.wc235.com" target="_blank">王朝235网址导航</a>