php中利用redis限制接口请求频率 不指定

jed , 2018-3-14 10:51 , 代码编程 , 评论(0) , 阅读(8347) , Via 本站原创 | |

<?php

function getRedis()
{
    $redis = new Redis();
    $redis->connect('127.0.0.1', 6379);
    return $redis;
}

function getApiLimit($api, $default = '2000')
{
    //接口名称 = 每次请求ms间隔
    $info = [
        'user.info' => '500',
        'user.login' => '1000'
    ];
    return isset($info[$api]) ? $info[$api] : $default;
}

$api = isset($_GET['path']) ? $_GET['path'] : 'main';
$time = getApiLimit($api);
$key = "api_limit_" . $api;
$redis = getRedis();
$num = $redis->incr($key);
if($num == 1) {
    $redis->pExpire($key, $time);
} else {
    exit('api limit');
}
echo 'success';
发表评论

昵称

网址

电邮

打开HTML 打开UBB 打开表情 隐藏 记住我 [登入] [注册]