简体   繁体   中英

How to connect nodejs redis client to redis cloud server?

const redis = require('redis');

const client = redis.createClient({
  host: 'redis-19606.redislabs.com',
  port: 19606,
  password: 'password'
});

client.on('ready', () => {
  console.log('redis is connected');
});

client.on('error', (err) => {
  console.log('redis is disconnected: ', err);
});

(async () => {
  try {
    await client.connect();
  } catch (error) {
    console.error('error while connecting redis', error);
  }
})();

This somehow does not seem to work. What am I doing wrong? It keeps connecting to 127.0.0.1:6379 which is the default config instead of what I am passing. This is only happening with nodejs client of redis. go-redis the golang client for redis is working flawlessly.

Just a guess, but which Node Redis version do you use? I had difficulties upgrading myself. The configuration of the client has changed since version 4.xx Since version 4.xx you have to use a confiuration according to Client Configuration . Therefore use

const client = redis.createClient({
  socket: {
    host: 'redis-19606.redislabs.com',
    port: 19606,
  }
});

or use a URL

const client = redis.createClient({
  url: "redis://redis-19606.redislabs.com:19606"
});

Your client configuration matches the Node Redis version 3.xx but not 4.xx Please see Redis NPM v3.1.2 and Redis NPM v4.0.1 for details.

you should maintain this format of Redis connecting string:

redis://:YOUR_PASSWORD@YOUR_ENDPOINT:YOUR_PORT
  1. What version of redis are you using?
  2. Do not explicitly conect to redis by writing "client.connect()" but instead use this after setting host, port and password:
     redisClient.on("connect", () => {})

and then you can use redisClient variable to get and set values.

  1. Also if you're trying to connect to a redislabs server then I think your host name might be incorrect and double check your host from redislabs.

Try this new Redis("redis://username:authpassword@127.0.0.1:6380/4");

Check the documentation Link

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM