Download the PHP package cjphp/rate-limiter without Composer
On this page you can find all versions of the php package cjphp/rate-limiter. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Please rate this library. Is it a good library?
Informations about the package rate-limiter
API 限流器
基于 PHP 8.1+ 的限流组件,支持文件 / Redis 存储,以及固定窗口、滑动窗口、漏桶策略。
特性
存储方式
- 文件存储(单机,目录自动创建)
- Redis 存储(多机可用,通过分布式锁保证并发安全)
流控策略
- 固定窗口策略(窗口交界处可能出现接近 2 倍限额的突发,属算法固有特性)
- 滑动窗口策略
- 漏桶策略
并发与失败策略
- 策略判定在存储层互斥锁内执行,避免 read-modify-write 竞态超额放行
- 抢锁或存储异常时采用失败关闭(fail-closed):视为触发限流,避免绕过
项目结构
安装
使用 Redis 存储时需安装 ext-redis(phpredis)。
使用方法
返回值约定
isRateLimited() 返回 true 表示触发限流(拦截),false 表示放行。
全局限流
第二个参数 $isGlobal = true 时,忽略业务 key,所有调用共享同一计数器。
开发与测试
注意事项
- 未知存储类型 / 策略类型会抛出异常,不再静默降级。
- Redis 存储会为状态 key 设置 TTL,降低长期堆积风险。
- 滑动窗口会保存窗口内时间戳列表,极高 QPS 场景需评估存储体积。
All versions of rate-limiter with dependencies
PHP Build Version
Package Version
Requires
php Version
>=8.1
The package cjphp/rate-limiter contains the following files
Loading the files please wait ...