Optional ConnectorOptional autoOptional autoWhether or not to resend unfulfilled commands on reconnect.
Unfulfilled commands are most likely to be blocking commands such as brpop or blpop.
true
Optional autoWhen the client reconnects, channels subscribed in the previous connection will be
resubscribed automatically if autoResubscribe is true.
true
Optional blockingEnables client-side timeout protection for blocking commands when set
to a positive number. If blockingTimeout is undefined, 0, or
negative (e.g. -1), the protection is disabled and no client-side
timers are installed for blocking commands.
Optional blockingGrace period (ms) added to blocking command timeouts. Only used when
blockingTimeout is a positive number. Defaults to 100ms.
Optional clientTag to append to the library name in CLIENT SETINFO (ioredis(tag)).
Optional commandOptional commandIf a command does not return a reply within a set number of milliseconds, a "Command timed out" error will be thrown.
Optional connectHow long the client will wait before killing a socket due to inactivity during initial connection.
10000
Optional connectionSet the name of the connection to make it easier to identity the connection in client list.
Optional dbDatabase index to use.
0
Optional disableIf true, skips setting library info via CLIENT SETINFO.
Optional enablefalse
Optional enableBy default, if the connection to Redis server has not been established, commands are added to a queue
and are executed once the connection is "ready" (when enableReadyCheck is true, "ready" means
the Redis server has loaded the database from disk, otherwise means the connection to the Redis
server has been established). If this option is false, when execute the command when the connection
isn't ready, an error will be returned.
true
Optional enableThe client will sent an INFO command to check whether the server is still loading data from the disk (
which happens when the server is just launched) when the connection is established, and only wait until
the loading process is finished before emitting the ready event.
true
Optional Experimental himportManaged-fieldset support is experimental and requires Redis 8.10 or newer.
Long-lived HIMPORT fieldsets managed for the lifetime of this client. Definitions are copied during construction and prepared again whenever the physical Redis connection changes.
When a managed HIMPORT SET needs fieldset preparation or recovery,
later commands issued on this client may be sent before that SET resumes.
Await the SET before issuing commands that depend on its write.
Explicit pipelines containing a managed HIMPORT SET wait for required
fieldset preparation before the batch is sent.
Background preparation failures do not prevent the connection from
becoming ready and are reported through the error event. A dependent
managed HIMPORT SET retries preparation and rejects if recovery fails.
Use explicit HIMPORT PREPARE and DISCARD commands on a separate
client for bounded, manually managed batches.
undefined
@experimental
Optional keepInitial delay in milliseconds before the first TCP keep-alive probe.
Optional keyOptional lazyWhen a Redis instance is initialized, a connection to the server is immediately established. Set this to
true will delay the connection to the server until the first command is sent or redis.connect() is called
explicitly. When redis.connect() is called explicitly, a Promise is returned, which will be resolved
when the connection is ready or rejected when it fails. The rejection should be handled by the user.
false
Optional max10000
Optional maxThe commands that don't get a reply due to the connection to the server is lost are
put into a queue and will be resent on reconnect (if allowed by the retryStrategy option).
This option is used to configure how many reconnection attempts should be allowed before
the queue is flushed with a MaxRetriesPerRequestError error.
Set this options to null instead of a number to let commands wait forever
until the connection is alive again.
20
Optional monitorThis option is used internally when you call redis.monitor() to tell Redis
to enter the monitor mode when the connection is established.
false
Optional noEnable/disable the use of Nagle's algorithm.
Optional offlineOptional passwordIf set, client will send AUTH command with the value of this option when connected.
Optional protocolThe RESP protocol version to use.
3
Optional readfalse
Optional reconnectWhether or not to reconnect on certain Redis errors.
This options by default is null, which means it should never reconnect on Redis errors.
You can pass a function that accepts an Redis error, and returns:
true or 1 to trigger a reconnection.false or 0 to not reconnect.2 to reconnect and resend the failed command (who triggered the error) after reconnection.const redis = new Redis({
reconnectOnError(err) {
const targetError = "READONLY";
if (err.message.includes(targetError)) {
// Only reconnect when the error contains "READONLY"
return true; // or `return 1;`
}
},
});
null
Optional replyHow RESP3-only reply types are represented in JavaScript.
Only supported when protocol is 3.
"legacy" (default): RESP2-compatible shapes. Map replies arrive as
flat [key, value, ...] arrays and doubles as strings, so replies are
identical across both protocols."resp3": map replies arrive as plain objects (with string keys) and
doubles as numbers."legacy"
Optional retryDetermines the delay in milliseconds before reconnecting after a connection loss.
Exponential backoff capped at 5000ms, plus 0-199ms of random jitter.
Optional scriptsOptional numberOptional readundefined
Optional showOptional socketIf the socket does not receive data within a set number of milliseconds:
Optional stringWhen enabled, numbers returned by Redis will be converted to JavaScript strings instead of numbers.
This is necessary if you want to handle big numbers (above Number.MAX_SAFE_INTEGER === 2^53).
false
Optional usernameIf set, client will send AUTH command with the value of this option as the first argument when connected. This is supported since Redis 6.
Default