mu / redis-limiter
There is no license information available for the latest version (v1.0.0) of this package.
基于Redis的限流器
v1.0.0
2019-08-08 07:25 UTC
Requires
- ext-redis: *
This package is auto-updated.
Last update: 2025-03-08 20:32:33 UTC
README
添加redis配置
$redisConf = [ 'host' => '127.0.0.1', 'port' => 16379, 'auth' => '' ]; Limit::setRedisConf($redisConf);
配置限流规则
Limit::getInstance()->addItem('default')->setMax('1r/s');
addItem() 配置的是限流的key
setMax() 配置的是限流规则,类似nginx限流规则
- 1r/s 表示每秒限一次
- 1r/m 每分钟一次
- 1r/h 每小时一次
- 1r/d 每天一次
3.实际项目中检查是否符合限流
if (Limit::isAllow('default')){ echo '成功',PHP_EOL; }else{ echo '失败',PHP_EOL; }
完整demo
require_once __DIR__.'/vendor/autoload.php'; use Mu\Juyuan\Limit; $redisConf = [ 'host' => '127.0.0.1', 'port' => 16379, 'auth' => '' ]; Limit::setRedisConf($redisConf); Limit::getInstance()->addItem('default')->setMax('1r/s'); for ($i=0;$i<100;$i++){ usleep(500000); echo '['.date('Y-m-d H:i:s').']'; if (Limit::isAllow('default')){ echo '成功',PHP_EOL; }else{ echo '失败',PHP_EOL; } }