无法连接到远程 redis 主机 [nodeJS]

Posted

技术标签:

【中文标题】无法连接到远程 redis 主机 [nodeJS]【英文标题】:Unable to connect to remote redis host [nodeJS] 【发布时间】:2022-01-13 08:45:52 【问题描述】:
const redis = require('redis');
require('dotenv').config();
console.log(process.env.redisHost, ':', process.env.redisPort);
const redisClient = redis.createClient(
    host: process.env.redisHost,
    port: process.env.redisPort,
    password: process.env.redisKey
);
redisClient.connect();
redisClient.on('error', err => console.log('Redis error: ', err.message));
redisClient.on('connect', () => console.log('Connected to redis server'));
module.exports = redisClient;

我从 redis 文档中尝试了这个示例,但我仍然收到一条错误消息: Redis error: connect ECONNREFUSED 127.0.0.1:6379

我将环境主机和端口变量记录到控制台,并获得了远程主机 ipv4 地址,但客户端仍在尝试连接到 localhost 而不是远程主机(我特意从本地设备上卸载了 redis 以检查客户正在按预期工作)。我还确认远程 redis 主机工作正常。

我还尝试了不同的方法,例如: https://cloud.google.com/community/tutorials/nodejs-redis-on-appengine

redis.createClient(port, host, auth_pass: password);

但是,我还是遇到了同样的错误。

我可以通过命令行连接到redis主机:

redis-cli.exe -h XX.XX.XX.XXX -a Password
XX.XX.XX.XXX:6379> set name dhruv
OK
XX.XX.XX.XXX:6379> get name
"dhruv"
XX.XX.XX.XXX:6379> exit

我第一次尝试在 nodejs 上使用 redis,所以没有正确的想法,但我认为我做的一切都是正确的。 任何解决方案/解决方法都会有所帮助:D

【问题讨论】:

【参考方案1】:

它使用此代码:

const url = `redis://$process.env.redisHost:$process.env.redisPort`;
const redisClient = redis.createClient(
    url,
    password: process.env.redisKey
);
redisClient.connect();

【讨论】:

【参考方案2】:

您能否检查目标端口是否可达。可能是防火墙阻止了您的访问

【讨论】:

是的,我什至可以从我的设备远程使用它。但问题是 redis 客户端甚至没有尝试连接到远程主机。它正在尝试连接到 127.0.0.1 而不是远程 IP 地址 redis 通常从配置文件中获取 ip,请从配置文件 installdir/redis/etc/redis 中更改 redis 配置。配置 另一个建议尝试使用docker进行redis连接 我应该在 redis conf 文件中特别搜索哪些字段?你能帮我解决这个问题吗?喜欢cluster-ip吗?另外,现在我不想使用 docker,因为我在 docker 中的数据库有问题,所以我正在寻找已经部署的 redis 版本 试试这种方式redis.js.orggithub.com/redis/node-redis在这个网站你可以找到如何在没有配置文件的情况下连接以及如何放置信息

以上是关于无法连接到远程 redis 主机 [nodeJS]的主要内容,如果未能解决你的问题,请参考以下文章

Linux无法远程连接Redis?

出于开发目的,无法从本地主机连接到 AWS RDS Postgresql

NodeJS - 如何连接到运行 Node 应用程序的远程 PC?

尝试连接到远程 MySQL 主机(错误 2003)

如何通过用户名和密码连接到远程 Redis 服务器

ClientWebSocket wss - 无法连接到远程服务器