通过Node.JS连接到RedisToGo

时间:2011-09-02 23:24:06

标签: node.js redis

我正在将Redis To Go与https://github.com/mranney/node_redis库结合使用。 Redis给了我一个看起来像redis://me:978287c0b670694673d045f08b2e0371@icefish.redistogo.com:9393的网址,但我不知道如何使用它,因为createClient()只占用主机和端口。

2 个答案:

答案 0 :(得分:19)

我相信您拥有的网址的方案是:

redis://username:password@host:port

我不相信username被使用。 node_redis提供了两种用于登录的方法:createClientauthreadme中有详细信息,但此处参考的是相关部分:

  

redis.createClient(端口,主机,选项)

     

创建新的客户端连接。 port默认为6379host   默认为127.0.0.1。如果您正在运行redis-server   与节点相同的计算机,则端口和主机的默认值为   可能很好。具有以下可能的对象中的options   属性:

     
      
  • parser:Redis协议回复解析器要使用的。默认为   hiredis如果安装了该模块。这也可以设置为   javascript
  •   
  • return_buffers:默认为false。如果设置为true,则批量生效   数据回复将作为节点缓冲区对象而不是   JavaScript字符串。
  •   
     

createClient()返回名为RedisClient的{​​{1}}对象   在这里的所有例子中。

     

client.auth(密码,回调)

     

连接到需要身份验证的Redis服务器时,   连接后必须将client命令作为第一个命令发送。   这可能很难协调重新连接,准备检查,   为了使这更容易,AUTH stashes client.auth()并且会   每次连接后发送,包括重新连接。 password是   在对第一个callback命令的响应之后仅调用一次   发送。

答案 1 :(得分:10)

我还必须将参数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');
  });
}