php redis限流代码
时间: 2023-10-13 19:29:20 浏览: 104
下面是一个简单的 PHP Redis 限流代码示例:
```php
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
$key = 'my_api_rate_limit';
$limit = 100; // 每分钟最多请求100次
$expire = 60; // 1分钟过期时间
// 获取当前请求数量
$count = $redis->get($key);
// 如果请求数量超过限制,返回错误
if ($count !== false && $count >= $limit) {
header('HTTP/1.1 429 Too Many Requests');
exit('Rate limit exceeded');
}
// 请求数量加1,并设置过期时间
$redis->multi()
->incr($key)
->expire($key, $expire)
->exec();
// 执行 API 逻辑
// ...
```
这个代码示例使用 Redis 的 `INCR` 命令对请求计数,并使用 `EXPIRE` 命令设置过期时间。如果请求数量超过限制,则返回 HTTP 429 错误。
阅读全文