Я использую Redis To Go в сочетании с библиотекой https://github.com/mranney/node_redis. Redis дает мне URL-адрес, который выглядит как redis://me:[email protected]:9393, но я не знаю, как его использовать, поскольку createClient() принимает только хост и порт.
Подключение к RedisToGo через Node.JS
Ответ 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()stashespasswordи будет отправьте его после каждого соединения, включая повторные подключения.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');
});
}