node-redis

createClient configuration

Property Default Description
url   redis[s]://[[username][:password]@][host][:port][/db-number] (see redis and rediss IANA registration for more details)
socket   Socket connection properties. Unlisted net.connect properties (and tls.connect) are also supported
socket.port 6379 Redis server port
socket.host 'localhost' Redis server hostname
socket.family 0 IP Stack version (one of 4 \| 6 \| 0)
socket.path   Path to the UNIX Socket
socket.connectTimeout 5000 Connection Timeout (in milliseconds)
socket.noDelay true Toggle Nagle's algorithm
socket.keepAlive 5000 Toggle keep-alive functionality
socket.tls   See explanation and examples below
socket.reconnectStrategy retries => Math.min(retries * 50, 500) A function containing the Reconnect Strategy logic
username   ACL username (see ACL guide)
password   ACL password or the old “–requirepass” password
name   Client name (see CLIENT SETNAME)
database   Redis database number (see SELECT command)
modules   Included Redis Modules
scripts   Script definitions (see Lua Scripts)
functions   Function definitions (see Functions)
commandsQueueMaxLength   Maximum length of the client’s internal command queue
disableOfflineQueue false Disables offline queuing, see FAQ
readonly false Connect in READONLY mode
legacyMode false Maintain some backwards compatibility (see the Migration Guide)
isolationPoolOptions   See the Isolated Execution Guide
pingInterval   Send PING command at interval (in ms). Useful with “Azure Cache for Redis”

Reconnect Strategy

When the socket closes unexpectedly (without calling .quit()/.disconnect()), the client uses reconnectStrategy to decide what to do. The following values are supported:

  1. false -> do not reconnect, close the client and flush the command queue.
  2. number -> wait for X milliseconds before reconnecting.
  3. (retries: number, cause: Error) => false | number | Error -> number is the same as configuring a number directly, Error is the same as false, but with a custom error.

By default the strategy is Math.min(retries * 50, 500), but it can be overwritten like so:

createClient({
  socket: {
    reconnectStrategy: retries => Math.min(retries * 50, 1000)
  }
});

TLS

To enable TLS, set socket.tls to true. Below are some basic examples.

For configuration options see tls.connect and tls.createSecureContext, as those are the underlying functions used by this library.

Create a SSL client

createClient({
  socket: {
    tls: true,
    ca: '...',
    cert: '...'
  }
});

Create a SSL client using a self-signed certificate

createClient({
  socket: {
    tls: true,
    rejectUnauthorized: false,
    cert: '...'
  }
});