用途:ioredis v5 是 Node.js 环境下的 Redis 客户端参考,用于连接与操作 Redis,覆盖连接配置、管道、事务、发布订阅、Lua 脚本、扫描、Cluster 与 Sentinel 等场景。要求 Node.js >= 12、Redis >= 2.6.12,使用 TypeScript 编写。
主要能力与用法:连接可用 new Redis()、new Redis(6379, "host") 或 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()。在 NodeNext / moduleResolution: "nodenext" 下须用命名导入 import { Redis } from "ioredis",Cluster 时导入 import { Redis, Cluster } from "ioredis"。
注意事项:订阅后的客户端不能执行其他命令,发布订阅需使用独立实例;maxRetriesPerRequest 默认 20,设为 null 表示无限重试(BullMQ 要求);pipeline.exec() 不会 reject,错误位于各结果第 [0] 位;showFriendlyErrorStack 有性能开销,生产环境不要开启;Cluster 管道中所有 key 必须落在同一节点服务的槽;enableAutoPipelining 可提升 35-50% 吞吐,可全局启用。
适用场景与限制:适合 Node.js 应用中访问 Redis 的常规读写、批量操作、消息订阅、脚本与集群部署。具体平台支持、收费或价格暂未提供。
参考文件:连接与 RedisOptions/TLS/重试策略见 references/connection-options.md;核心 API、管道、事务、发布订阅、Lua、扫描、事件见 references/core-api.md;Streams、自动管道、转换器、二进制、错误处理与调试见 references/advanced-patterns.md;Cluster、ClusterOptions、Sentinel 与故障转移见 references/cluster-sentinel.md。