繁体   English   中英

如何将nodejs redis客户端连接到redis云服务器?

[英]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);
  }
})();

这似乎不起作用。 我究竟做错了什么? 它一直连接到 127.0.0.1:6379 这是默认配置,而不是我传递的。 这只发生在 redis 的 nodejs 客户端上。 go-redis 的 golang 客户端 redis 工作完美。

只是猜测,但您使用的是哪个节点 Redis 版本? 我在升级自己时遇到了困难。 自 4.xx 版以来,客户端的配置已更改自 4.xx 版以来,您必须根据Client Configuration使用配置。 因此使用

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

或使用 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.

您应该保持这种格式的 Redis 连接字符串:

redis://:YOUR_PASSWORD@YOUR_ENDPOINT:YOUR_PORT
  1. 你用的是什么版本的 redis?
  2. 不要通过编写“client.connect()”明确连接到 redis,而是在设置主机、端口和密码后使用它:
     redisClient.on("connect", () => {})

然后您可以使用redisClient变量来获取和设置值。

  1. 此外,如果您尝试连接到 redislabs 服务器,那么我认为您的主机名可能不正确,并从 redislabs 仔细检查您的主机。

试试这个new Redis("redis://username:authpassword@127.0.0.1:6380/4");

检查文档链接

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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