SuperAPI AI 工具集

redis_rate_limiter

办公与效率

查看项目

更新于 10-16 05:05

技能介绍

用途:在 api_gateway_agent 和 antifraud_agent 中作为第一道防线,限制验证尝试次数,抵御暴力破解攻击。

主要能力:使用 Redis 有序集合实现滑动窗口限流,按 IP、device_id、doc_number 三类标识分别计数。键格式为 ratelimit:{type}:{identifier},例如 ratelimit:ip:192.168.1.1。

使用方式:先安装依赖 pip install redis。核心步骤为:用 ZADD key {now_ms} {now_ms} 写入当前时间戳;用 ZREMRANGEBYSCORE key 0 {now_ms - window_ms} 清除窗口外记录;用 ZCARD key 统计当前数量;若 count > limit 则拒绝,否则放行;最后用 EXPIRE key {window_seconds} 设置键过期。

默认限制:IP 每小时 10 次;device_id 每天 5 次;doc_number 每小时 3 次,均可配置。响应需返回标准头 X-RateLimit-Limit、X-RateLimit-Remaining、Retry-After。

限制与注意事项:高并发场景建议使用 Redis Lua 脚本保证原子性并减少往返;可用 Redis Sentinel 避免限流器成为单点故障。资料未提供具体代码实现、部署步骤与性能数据。