soxft / rate-limit
General purpose rate limiter implementation.
1.1.5
2024-07-18 07:40 UTC
Requires
- php: ^7.4 || ^8.0
- ext-redis: *
README
基于Redis 的 PHP 速率限制
Installation
composer require soxft/rate-limit
Usage
Terminating rate limiter
use RateLimit\Rate; use RateLimit\RateLimiter; use RateLimit\Exception\LimitExceededException; $rateLimiter = new RateLimiter(Rate::perMinute(100), new \Redis()); $apiKey = 'abc123'; // 用户标识 try { $rateLimiter->limit($apiKey); //on success } catch (LimitExceededException $exception) { //on limit exceeded }
Silent rate limiter
use RateLimit\Rate; use RateLimit\RateLimiter; $rateLimiter = new RateLimiter(Rate::perMinute(100), new \Redis()); $ipAddress = '192.168.1.2'; $status = $rateLimiter->limitSilently($ipAddress); echo $status->left(); //99
License
Released under MIT License - see the License File for details.
Secondary development based on nikolaposa/rate-limie