leychan/rate-limiter

此包的最新版本(v0.0.1)没有可用的许可信息。

基于php和redis的速率限制器

v0.0.1 2023-11-24 07:38 UTC

This package is not auto-updated.

Last update: 2024-09-24 13:52:18 UTC


README

php-rate-limiter是一个基于php和redis的速率限制器

安装

composer require leychan/php-rate-limiter

使用

require_once __DIR__ . '/../vendor/autoload.php';

use Leychan\RateLimiter\RateLimiter;
use Leychan\RateLimiter\RedisClientOpt;
use Leychan\RateLimiter\SlideWindowOpt;

$redisClientOpt = (new RedisClientOpt())->setHost('127.0.0.1')->setPort(6379);
// 设置窗口大小以及阈值,key为redis的key,统计窗口内的请求数
// 每 1000000 ms 内允许的请求数为 5
$slideWindowOpt = (new SlideWindowOpt())->setWindowSize(100000)->setThreshold(5)->setKey('test2222');

for ($i = 0; $i < 20; $i++) {
    $rateLimiter = new RateLimiter(
        $redisClientOpt,
        $slideWindowOpt->setUniqueId($i)
    );

    var_dump($rateLimiter->check());
}