SuperAPI AI 工具集

upstash-redis

数据与分析

查看项目

更新于 10-15 21:52

技能介绍

本技能面向无服务器和边缘运行时,演示如何通过 HTTP 访问 Redis,适用于无法维持长连接 TCP 的场景(边缘中间件、短生命周期函数)。

用途:缓存、会话、限流三类服务端常见任务,步骤按顺序推进,每步带检查点。

主要能力与用法:需准备 Upstash Redis 数据库(托管服务,按用量计费并提供免费额度),凭据为 REST URL 和 token,使用环境变量 UPSTASH_REDIS_REST_URL 与 UPSTASH_REDIS_REST_TOKEN。安装:npm install @upstash/redis @upstash/ratelimit。客户端应在模块作用域创建(Redis.fromEnv()),而非请求处理函数内部,以便复用缓存与管道。缓存采用 cache-aside 并始终设置 TTL、为键加命名空间;会话用滑动过期并在 HttpOnly; Secure; SameSite cookie 中存放会话 ID,切勿把 Redis token 放入客户端代码;限流用 Ratelimit,可选 fixedWindow、slidingWindow(默认推荐)、tokenBucket,窗口支持 ms/s/m/h/d,不同层用不同 prefix。每条命令都是一次 HTTP 请求,批量操作请用 pipeline() 或 MGET/MSET,生产环境避免 KEYS *;值会自动序列化,不要在 set 前 JSON.stringify 或在 get 后 parseInt。限流 reset 是毫秒级 Unix 时间戳。

适用场景:边缘中间件、短生命周期函数的缓存与会话、按用户或 IP 的接口限流;单次请求内大量命令时需批处理。

限制与不适用:已有长连接 TCP Redis 的常驻服务器应继续用 ioredis/node-redis;向量搜索或 RAG 请用向量数据库技能;亚毫秒级进程内缓存请用内存 LRU。其它细节暂未提供。