Не удается подключиться от Express к удаленному Redis - PullRequest
0 голосов
/ 17 апреля 2020

У меня проблемы с подключением к удаленному серверу Redis. Из моего локального клиента, когда я подключаюсь из cli, все выглядит нормально

redis-cli -h 192.168.80.236 ping
PONG

Если я пытаюсь подключиться из простого Express приложения, я получаю следующую ошибку

Redis PUBLISHER NodeJS application in port 3000
events.js:187
      throw er; // Unhandled 'error' event
      ^

Error: Redis connection to 127.0.0.1:6379 failed - connect ECONNREFUSED 127.0.0.1:6379
    at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1128:14)
Emitted 'error' event on RedisClient instance at:
    at RedisClient.on_error (/Users/sriramk/Projects/Personal/Express/simpleredis/node_modules/redis/index.js:341:14)
    at Socket.<anonymous> (/Users/sriramk/Projects/Personal/Express/simpleredis/node_modules/redis/index.js:222:14)
    at Socket.emit (events.js:210:5)
    at emitErrorNT (internal/streams/destroy.js:92:8)
    at emitErrorAndCloseNT (internal/streams/destroy.js:60:3)
    at processTicksAndRejections (internal/process/task_queues.js:80:21) {
  errno: 'ECONNREFUSED',
  code: 'ECONNREFUSED',
  syscall: 'connect',
  address: '127.0.0.1',
  port: 6379
}

Что меня беспокоит, так это то, что Redis подключается к «localhost», когда он действительно должен подключаться к удаленному серверу. Изначально я думал, что некоторые проблемы с аутентификацией могут вызвать проблемы с подключением. Но если Redis-Cli может подключиться без помех, что за проблема с NodeJS Полный код можно найти в этом месте - https://github.com/KrishnanSriram/simpleredis

Буду признателен за ваши мысли / советы , Я полностью остановлен из-за этой проблемы

1 Ответ

0 голосов
/ 17 апреля 2020

Я проверил ваш репозиторий и в вашем server.js я вижу, что вы дважды пытаетесь создать экземпляр Redis-клиента.

Один раз с

const client = redis.createClient(); 

, а затем с

const publisher = redis.createClient(6379, '192.168.80.236');

Удаление const client = redis.createClient(); должно исправить проблему, так как при попытке подключиться к localhost по умолчанию порт.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...