ioredis

ioredis v5 reference for Node.js Redis client — connection setup, RedisOptions, pipelines, transactions, Pub/Sub, Lua scripting, Cluster, and Sentinel. Use when: (1) creating or configuring Redis connections (standalone, cluster, sentinel), (2) writing Redis commands with ioredis (get/set, pipelines, multi/exec), (3) setting up Pub/Sub or Streams, (4) configuring retryStrategy, TLS, or auto-pipelining, (5) working with Redis Cluster options (scaleReads, NAT mapping), or (6) debugging ioredis connection issues. Important: use named import `import { Redis } from 'ioredis'` for correct TypeScript types with NodeNext.

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "ioredis" with this command: npx skills add jgamaraalv/ts-dev-kit/jgamaraalv-ts-dev-kit-ioredis

ioredis v5 — Node.js Redis Client

ioredis v5.x. Requires Node.js >= 12, Redis >= 2.6.12. 100% TypeScript.

<quick_reference>

Critical: Import Style

// CORRECT — named import (required for NodeNext / moduleResolution: "nodenext")
import { Redis } from "ioredis";

// For Cluster:
import { Redis, Cluster } from "ioredis";

Quick Reference

OperationCode
Connectnew Redis() or new Redis(6379, "host") or new Redis("redis://...")
Get/Setawait redis.set("key", "val") / await redis.get("key")
Pipelineawait redis.pipeline().set("a","1").get("a").exec()
Transactionawait redis.multi().set("a","1").get("a").exec()
Pub/Subsub.subscribe("ch") / sub.on("message", cb) / pub.publish("ch", msg)
Lua scriptredis.defineCommand("name", { numberOfKeys: 1, lua: "..." })
Scanredis.scanStream({ match: "prefix:*", count: 100 })
Graceful closeawait redis.quit()
Force closeredis.disconnect()

</quick_reference>

<gotchas>

Common Gotchas

  1. Named import: Always import { Redis } from "ioredis" with NodeNext resolution
  2. Pub/Sub isolation: A subscribed client cannot run other commands — use separate instances
  3. maxRetriesPerRequest: Default is 20. Set to null for infinite retries (required by BullMQ)
  4. Pipeline errors: pipeline.exec() never rejects — errors are in each result's [0] position
  5. showFriendlyErrorStack: Performance cost — never enable in production
  6. Cluster pipelines: All keys in a pipeline must hash to slots served by the same node
  7. enableAutoPipelining: 35-50% throughput improvement, safe to enable globally
</gotchas> <references>

When to Load References

NeedReference file
Connection setup, RedisOptions, TLS, retryStrategy, lifecyclereferences/connection-options.md
Core API: pipelines, transactions, Pub/Sub, Lua scripting, scanning, eventsreferences/core-api.md
Streams, auto-pipelining, transformers, binary data, error handling, debuggingreferences/advanced-patterns.md
Redis Cluster setup, ClusterOptions, Sentinel config, failoverreferences/cluster-sentinel.md
</references>

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Coding

bullmq

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

ui-ux-guidelines

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

service-worker

No summary provided by upstream source.

Repository SourceNeeds Review