我正在将Redis To Go与https://github.com/mranney/node_redis库结合使用。 Redis给了我一个看起来像redis://me:978287c0b670694673d045f08b2e0371@icefish.redistogo.com:9393
的网址,但我不知道如何使用它,因为createClient()
只占用主机和端口。
答案 0 :(得分:19)
我相信您拥有的网址的方案是:
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
,则批量生效 数据回复将作为节点缓冲区对象而不是 JavaScript字符串。
createClient()
返回名为RedisClient
的{{1}}对象 在这里的所有例子中。client.auth(密码,回调)
连接到需要身份验证的Redis服务器时, 连接后必须将
client
命令作为第一个命令发送。 这可能很难协调重新连接,准备检查, 为了使这更容易,AUTH
stashesclient.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');
});
}