无法连接到远程 redis 主机 [nodeJS]
Unable to connect to remote redis host [nodeJS]
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 地址,但客户端仍在尝试连接到本地主机而不是远程主机(我故意从本地设备卸载 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,所以没有正确的想法,但我认为我做的一切都是对的。
任何 solution/workaround 都会有帮助 :D
你能检查一下目标端口是否可达吗?可能是防火墙阻止了您的访问
它适用于此代码:
const url = `redis://${process.env.redisHost}:${process.env.redisPort}`;
const redisClient = redis.createClient({
url,
password: process.env.redisKey
});
redisClient.connect();
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 地址,但客户端仍在尝试连接到本地主机而不是远程主机(我故意从本地设备卸载 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,所以没有正确的想法,但我认为我做的一切都是对的。 任何 solution/workaround 都会有帮助 :D
你能检查一下目标端口是否可达吗?可能是防火墙阻止了您的访问
它适用于此代码:
const url = `redis://${process.env.redisHost}:${process.env.redisPort}`;
const redisClient = redis.createClient({
url,
password: process.env.redisKey
});
redisClient.connect();