wangschang / requestlimit
此包的最新版本(dev-master)没有可用的许可证信息。
requestlimit
dev-master
2024-06-25 14:46 UTC
Requires
- predis/predis: ^1.0
This package is auto-updated.
Last update: 2024-09-25 15:22:02 UTC
README
1. 支持方法
支持通过redis和文件存储,可以通过实现接口RequestLimit\StorageInterface
来自定义扩展新的支持类型。支持窗口和令牌桶策略,可以通过实现接口RequestLimit\StrategyInterface
来扩展其他策略。
2. 使用方法
详情请参考示例
require 'vendor/autoload.php'; use Predis\Client; use RequestLimit\RequestLimit; use RequestLimit\FileStorage; use RequestLimit\RedisStorage; use RequestLimit\RequestLimitException; use RequestLimit\WindowsStrategy; use RequestLimit\BucketStrategy; $redis = new Client(['scheme' => 'tcp','host' => '127.0.0.1','port' => 6379]); try{ //$storgae = new FileStorage('/data/wwwlogs/requestlimit');//file storage $storgae = new RedisStorage($redis);//redis storage //$requestlimit = new RequestLimit(new WindowsStrategy(10,20),$storgae); $requestlimit = new RequestLimit(new BucketStrategy(1,0.1,5),$storgae); $uid = 1; if($requestlimit->isAllow($uid)){ echo "allow"; }else{ echo "not allow"; }catch(RequestLimitException $e){ print_r($e->getRequestLimitMessage()); }catch(\Exception $e){ echo $e->getMessage(); }