Подключение к RedisToGo через Node.JS
Я использую Redis To Go в сочетании с библиотекой https://github.com/mranney/node_redis. Redis дает мне URL, который выглядит как redis://me:978287c0b670694673d045f08b2e0371@icefish.redistogo.com:9393
но я не знаю, как использовать его как createClient()
принимает только хост и порт.
2 ответа
Я считаю, что схема для URL-адреса у вас есть:
redis://username:password@host:port
,
Я не верю username
используется. node_redis
предоставляет два метода, которые вы будете использовать для входа в систему: createClient
а также auth
, В readme есть подробности, но для справки здесь есть соответствующая часть:
redis.createClient (порт, хост, опции)
Создайте новое клиентское соединение.
port
по умолчанию6379
а такжеhost
по умолчанию127.0.0.1
, Если у вас естьredis-server
работает на том же компьютере, что и узел, тогда по умолчанию для порта и хоста, вероятно, все в порядке.options
в объекте со следующими возможными свойствами:
parser
: какой анализатор ответов протокола Redis использовать. По умолчаниюhiredis
если этот модуль установлен. Это также может быть установлено вjavascript
,return_buffers
: по умолчанию false. Если установленоtrue
, тогда массовые ответы на данные будут возвращены как объекты Buffer узла вместо строк JavaScript.
createClient()
возвращаетRedisClient
объект с именемclient
во всех примерах здесь.client.auth (пароль, обратный вызов)
При подключении к серверам Redis, требующим аутентификации,
AUTH
Команда должна быть отправлена в качестве первой команды после подключения. Это может быть сложно согласовать с переподключениями, проверкой готовности и т. Д. Чтобы сделать это проще,client.auth()
тайникиpassword
и отправит его после каждого подключения, включая переподключения.callback
вызывается только один раз, после ответа на самый первыйAUTH
Команда отправлена.
Мне также пришлось добавить параметр 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');
});
}