#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, поэтому я искал уже развернутую версию redis5.попробуйте этот способ redis.js.org github.com/redis/node-redis на этом веб-сайте вы можете найти, как подключиться без конфигурационного файла и как вы размещаете информацию