关于 ioredis
面向使用 ioredis v5 的开发者的参考技能,介绍 TypeScript Redis 客户端的常用操作、连接配置与进阶模式。
主要功能
- 01Redis 连接配置
- 02管道与事务
- 03Pub/Sub 与 Lua 脚本
- 04扫描与流处理模式
- 05Cluster 和 Sentinel 指引
适用场景
- 01配置 Redis 连接
- 02选择多命令操作模式
- 03使用 Pub/Sub 或 Lua 脚本
- 04配置 Redis Cluster 或 Sentinel
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ jgamaraalv/ ts-dev-kit --skill ioredis安装后在 Claude Code 中输入/ioredis确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/advanced-patterns.mdcluster-sentinel.mdconnection-options.mdcore-api.md详细介绍
ioredis v5 — Node.js Redis 客户端
ioredis v5.x。需要 Node.js >= 12、Redis >= 2.6.12。100% 使用 TypeScript。
<quick_reference>
关键:导入方式
// CORRECT — named import (required for NodeNext / moduleResolution: "nodenext")
import { Redis } from "ioredis";
// For Cluster:
import { Redis, Cluster } from "ioredis";
快速参考
| 操作 | 代码 |
|---|---|
| 连接 | new Redis() or new Redis(6379, "host") or new Redis("redis://...") |
| 获取/设置 | await redis.set("key", "val") / await redis.get("key") |
| 管道 | await redis.pipeline().set("a","1").get("a").exec() |
| 事务 | await redis.multi().set("a","1").get("a").exec() |
| 发布/订阅 | sub.subscribe("ch") / sub.on("message", cb) / pub.publish("ch", msg) |
| Lua 脚本 | redis.defineCommand("name", { numberOfKeys: 1, lua: "..." }) |
| 扫描 | redis.scanStream({ match: "prefix:*", count: 100 }) |
| 平滑关闭 | await redis.quit() |
| 强制关闭 | redis.disconnect() |
</quick_reference>
常见注意事项
- 命名导入:使用 NodeNext 解析时,始终使用
import { Redis } from "ioredis" - 发布/订阅隔离:已订阅的客户端无法运行其他命令——请使用单独的实例
maxRetriesPerRequest:默认值为 20。设为null可无限重试(BullMQ 要求)- 管道错误:
pipeline.exec()永远不会拒绝;错误位于每个结果的[0]位置 showFriendlyErrorStack:会带来性能开销——切勿在生产环境中启用- 集群管道:管道中的所有键都必须哈希到由同一节点提供服务的槽
enableAutoPipelining:可提升 35-50% 的吞吐量,可安全地全局启用
何时加载参考文档
| 需求 | 参考文件 |
|---|---|
| 连接设置、RedisOptions、TLS、retryStrategy、生命周期 | references/connection-options.md |
| 核心 API:管道、事务、发布/订阅、Lua 脚本、扫描、事件 | references/core-api.md |
| 流、自动管道、转换器、二进制数据、错误处理、调试 | references/advanced-patterns.md |
| Redis Cluster 设置、ClusterOptions、Sentinel 配置、故障转移 | references/cluster-sentinel.md |
评论
支持 Markdown