An application-created single-node client (RESP3 or RESP2), or a factory that creates one on the first connect (see NodeRedisClientFactory)
Command bound and optional client error callback
One adapter; use a separate wrapped duplicate for pub/sub
const client = fromNodeRedis(createClient({ url }), { commandTimeoutMs: 1000 });
await client.set('key', 'value', 'EX', 60);
await client.quit();
// Loaded on first use, so an instrumentation registered by then traces it.
const traced = fromNodeRedis(async () => (await import('redis')).createClient({ url }));
Wraps a single-node node-redis client for every Setu-TS Redis client option. Commands connect lazily and normalize RESP3 maps into ioredis's raw arrays. Each call is bounded independently; a timed-out command may still run on Redis. The bound must exceed a streams consumer's blocking read duration.