用途:这是一份 Redis 使用模式参考,面向需要设计缓存、限流、事件处理与分布式协调的开发者,提供可直接借鉴的 TypeScript 代码片段。
主要能力:
- 缓存策略:演示 cache-aside 读写、按 user:id 命名键、设置 EX 过期时间,以及删除相关键的失效方式。
- 滑动窗口限流:用有序集合 zremrangebyscore、zadd、zcard、expire 组合在 multi 管道中统计窗口内请求数。
- 发布订阅:用 duplicate 连接订阅 notifications、orders 等频道,按频道分发消息,并用 publish 发布 JSON 事件。
- Streams 事件处理:用 xadd 生产事件,xgroup CREATE 建消费者组,xreadgroup 阻塞读取,处理完成后 xack 确认,支持持久化、重放与确认。
- Lua 原子操作:给出获取与释放分布式锁的脚本,通过 SET NX EX 加锁、比对 token 后 DEL 释放,并用 eval 调用。
- 反模式与检查清单:列出避免存大对象、生产环境禁用 KEYS *(改用 SCAN)、缓存必须设 TTL、pub/sub 不保证持久、勿将 Redis 作为唯一存储、批量命令用管道,以及键命名、连接池、限流与锁的检查项。
使用方式:资料以代码示例形式给出,需结合自身 Redis 客户端与业务逻辑改写;示例使用 TypeScript 与 redis 客户端 API。
适用场景:Web 后端缓存、接口限流、事件驱动处理、需要原子性的分布式锁等。
限制:资料未提供安装命令、依赖版本、性能基准、收费信息或完整项目结构;示例为片段,未覆盖错误处理、集群与持久化配置细节。