该技能聚焦 Upstash Redis 在应用中的常见使用模式,资料以 TypeScript 代码示例为主。
用途:为使用 Upstash Redis 的项目提供缓存、限流、会话存储、发布订阅与排行榜等场景的参考实现。
主要能力:
- 基础缓存与 TTL:用 redis.get 读取缓存,未命中时查询数据库并 setex 写入,示例中 TTL 为 300 秒。
- 缓存失效:更新数据后通过 redis.del 删除单条缓存及列表缓存。
- 限流:使用 @upstash/ratelimit 的 Ratelimit.slidingWindow(10, '10 s') 配置滑动窗口,按 IP 调用 ratelimit.limit,失败返回 429 及 X-RateLimit 响应头。
- 会话存储:用 setex、get、del 在 Redis 中保存带过期时间的会话对象。
- 发布订阅:通过 redis.publish 发布事件。
- 排行榜:使用 zadd、zrevrange、zrevrank 维护分数与排名。
- 通用 cache-aside:封装 getData 函数,支持自定义 TTL。
使用方式:需安装并配置 @upstash/redis,通过环境变量 UPSTASH_REDIS_REST_URL 与 UPSTASH_REDIS_REST_TOKEN 初始化 Redis 客户端,再按示例调用对应方法。
适用场景:Next.js 等前端或全栈项目中需要缓存、API 限流、会话管理与实时消息推送的场景。
限制:资料未提供安装命令、依赖版本、定价、性能指标或错误处理细节;以上内容均暂未提供。