php基于redis实现单位时间内执行次数限制的限流代码
代码语言:phpcli
所属分类:其他
代码描述:php基于redis实现单位时间内执行次数限制的限流代码
代码标签: php 基于 redis 单位 时间 内 执行 次数 限制 限流 代码
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<?php class RateLimiter { private $redis; private $maxRequests; private $timeWindow; public function __construct($maxRequests, $timeWindow) { $this->redis = new Redis(); $this->redis->connect('127.0.0.1', 6379); $this->maxRequests = $maxRequests; $this->timeWindow = $timeWindow; } public function isAllowed($userId) { $key = "rate_limiter:$userId"; $currentTime = time(); // 开启事务 $this->redis->multi(); // 移除时间窗口外的请求记录 $this->redis->zRemRangeByScore($key, 0, $currentTime - $this->timeWindow); // 获取当前时间窗口内的请求数量 $this->redis->zCard($key); // 添加当前请求的时间戳 $this->redi.........完整代码请登录后点击上方下载按钮下载查看
网友评论0