Connect to the server
Connect your Python application to a Redis database
Basic connection
Connect to localhost on port 6379:
const redis = new Redis();
You can also specify a full set of connection options:
const redis = new Redis({
port: 6379,
host: "127.0.0.1",
username: "default",
password: "my-password",
db: 0,
});
ioredis supports connection URLs through the Redis constructor.
A URL can set the host, port, credentials, database, and whether to use TLS,
so you can use one instead of passing those options separately.
Store and retrieve a simple string.
await redis.set('foo', 'bar');
const value = await redis.get('foo');
console.log(value); // >>> bar
Connect to a Redis cluster
To connect to a Redis cluster, use Redis.Cluster(), passing an array of
endpoints.
const redis = new Redis.Cluster([
{
host: '127.0.0.1',
port: 6380,
password: 'my-password',
username: 'default',
},
{
host: '127.0.0.1',
port: 6381,
password: 'my-other-password',
username: 'default',
},
// ...
]);
Connect to Redis Sentinel
To connect through Redis Sentinel,
pass a list of Sentinels in the sentinels option and the name of the primary that the
Sentinels monitor in name. The client asks the Sentinels for the current primary.
const redis = new Redis({
sentinels: [
{ host: "localhost", port: 26379 },
{ host: "localhost", port: 26380 },
{ host: "localhost", port: 26381 },
],
name: "mymaster",
});
await redis.set('foo', 'bar');
const value = await redis.get('foo');
console.log(value); // >>> bar
The Sentinels and the data nodes have separate credentials. Set sentinelPassword (and
sentinelUsername, if needed) for the Sentinels, and username and password for the
primary and replicas:
const redis = new Redis({
sentinels: [
{ host: "localhost", port: 26379 },
{ host: "localhost", port: 26380 },
{ host: "localhost", port: 26381 },
],
name: "mymaster",
// Credentials for the Sentinel instances.
sentinelPassword: "my-sentinel-password",
// Credentials for the primary and replica data nodes.
username: "default",
password: "my-password",
});
If the Sentinel password is wrong or missing, the error says that all Sentinels are unreachable.
By default, ioredis doesn't listen for failover announcements from the Sentinels. After a
failover, the client keeps using the old primary until Sentinel reconfigures it as a
replica and closes the connection. Any writes that the old primary accepts during that time
are lost. Set failoverDetector: true to switch to the new primary as soon as the Sentinels
announce it.
To connect to a replica instead of the primary, set role: "slave". The client connects to
one replica, chosen at random. Replication is asynchronous, so a replica can return stale
data.
const replica = new Redis({
sentinels: [{ host: "localhost", port: 26379 }],
name: "mymaster",
role: "slave",
});
Connect to your production Redis with TLS
When you deploy your application, use TLS and follow the Redis security guidelines.
const redis = new Redis({
host: "localhost",
//...
tls: {
key: readFileSync('./redis_user_private.key'),
cert: readFileSync('./redis_user.crt'),
ca: fs.readFileSync('./redis_ca.pem'),
},
});