Невозможно подключиться к удаленному хосту redis [NodeJS]

#node.js #express #redis #node-redis

#node.js #экспресс #redis #узел-redis

Вопрос:

 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 docs, но все равно получаю сообщение об ошибке:
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
 

Я пытаюсь использовать redis на nodejs в первый раз, поэтому у меня нет правильной идеи, но я думаю, что я все делаю правильно.
Любое решение / обходной путь будут полезны: D

Ответ №1:

Он работал с этим кодом:

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

Ответ №2:

можете ли вы проверить, доступен ли порт в пункте назначения. возможно, брандмауэр блокирует ваш доступ

Комментарии:

1. да, я даже могу использовать его удаленно со своего устройства. Но проблема в том, что клиент redis даже не пытается подключиться к удаленному хосту. Он пытается подключиться к 127.0.0.1 вместо удаленного IP-адреса

2. обычно redis получает ip-адрес из файла конфигурации, пожалуйста, измените конфигурацию redis из файла конфигурации installdir/redis /etc/redis. conf

3. другое предложение попробуйте использовать docker для подключения к redis

4. Какое поле, в частности, я должен искать в файле redis conf? Можете ли вы мне помочь с этим? как это cluster-ip ? Кроме того, на данный момент я не хочу использовать docker, поскольку у меня возникли проблемы с моей базой данных в docker, поэтому я искал уже развернутую версию redis

5.попробуйте этот способ redis.js.org github.com/redis/node-redis на этом веб-сайте вы можете найти, как подключиться без конфигурационного файла и как вы размещаете информацию