Я использую 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');
});
}