后端与接口
用 @upstash/ratelimit +…
在 Next.js middleware、Vercel Edge、Cloudflare Workers 或任意 HTTP 端点中,按用户/IP/API Key/租户做限流并返回 429 时,用 Upstash Redis 支撑的 TS/JS SDK 实现。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 38/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 55/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 59/100 ×0.15
适用场景
用 @upstash/ratelimit特定
解决思路
- 安装 SDK(@upstash/ratelimit)并连接 Redis:创建 new Redis({ url: "<url>", token: "<token>" }) 实例。
- 创建限流器:new Ratelimit({ redis, limiter: Ratelimit.slidingWindow(5, "10s") }),按需要选择算法(fixed window、sliding window、token bucket)。
- 在请求处理入口调用 await limiter.limit("user-id"),检查返回的 success;为 false 时执行限流逻辑(如返回 429 Too Many Requests)。
- 用 prefix 和自定义 key 把限流维度切分为 per user、per IP、per API key、per tenant。
- 参考 algorithms.md 了解各限流算法的行为差异,据此选择合适的算法。
- 参考 pricing-cost.md 了解定价、Redis 命令成本影响与运维注意事项,估算限流带来的 Redis 开销。
- 参考 features.md 使用 SDK 的 prefix、自定义 key 及行为选项等特性。
- 参考 methods-getting-started.md 查阅完整方法参考与快速上手流程。
- 参考 traffic-protection.md 获取流量整形、滥用防护与保护模式的落地指引。
- 结合 deny list、临时缓存(ephemeral caching)、analytics、timeout 与多区域(multi-region)限流等能力,用于保护 login、signup、表单和 AI 端点免受滥用、机器人及暴力破解。
适用边界 · 注意事项
- 不想依赖 Upstash Redis 或任何外部托管 Redis 服务的场景(该方案需要 Upstash 账号与连接凭证)。
- 只在单个进程内做简单计数、无需跨实例/多区域共享限流状态的场景,可直接用内存实现。
- 需要与 Upstash 无关的独立限流中间件或完全离线部署时,应改用其他方案。