Подтвердить что ты не робот

Подключение к RedisToGo через Node.JS

Я использую Redis To Go в сочетании с библиотекой https://github.com/mranney/node_redis. Redis дает мне URL-адрес, который выглядит как redis://me:[email protected]:9393, но я не знаю, как его использовать, поскольку createClient() принимает только хост и порт.

4b9b3361

Ответ 1

Я считаю, что схема URL-адреса у вас:

redis://username:[email protected]:port.

Я не верю, что используется username. node_redis предоставляет два метода, которые вы будете использовать для входа: createClient и auth. Подробности в readme, но для справки здесь приведена соответствующая часть:

redis.createClient(порт, хост, параметры)

Создайте новое клиентское соединение. port по умолчанию 6379 и hostпо умолчанию - 127.0.0.1. Если у вас redis-server работает на тот же компьютер, что и node, тогда значения по умолчанию для порта и хоста вероятно, хорошо. options в объекте со следующим возможным Свойства:

  • parser: какой обработчик ответа протокола Redis используется. По умолчанию hiredis, если этот модуль установлен. Это также можно установить так: javascript.
  • return_buffers: по умолчанию используется значение false. Если установлено значение true, тогда объем ответы данных будут возвращены как node Буферные объекты вместо Строки JavaScript.

createClient() возвращает объект RedisClient с именем clientво всех примерах здесь.

client.auth(пароль, обратный вызов)

При подключении к серверам Redis, требующим аутентификации, Команда auth должна быть отправлена ​​в качестве первой команды после подключения. Это может быть сложно согласовать с пересоединениями, проверкой готовности, и т.д. Чтобы сделать это проще, client.auth() stashes password и будет отправьте его после каждого соединения, включая повторные подключения. callback является вызывается только один раз, после ответа на самую первую команду authотправлено.

Ответ 2

Мне также пришлось добавить параметр no_ready_check: true для вызова redis.createClient().

client = redis.createClient(settings.redis.port, 
                            settings.redis.host, 
                            {no_ready_check: true});
if (settings.redis.password) {
  client.auth(settings.redis.password, function() {
    console.log('Redis client connected');
  });
}