Update:我下面的回答并不完全正确。事实证明,我下面提到的问题中的解决方案实际上仍然有效。 IMO,这更多的是巧合,但你可以做这样的事情,它应该有效:
var redis = require('redis'),
client = redis.createClient('/tmp/redis.sock');
正如您从下面的代码片段中看到的,这将被传递给net.createConnection
它将连接到 unix 套接字/tmp/redis.sock
.
旧答案:
关于此问题有一个已关闭的问题node_redis/问题/204 https://github.com/mranney/node_redis/issues/204。看来,底层的node.js网络.createConnection http://nodejs.org/api/net.html#net_net_createconnection_options_connectionlistenerAPI 自此发生了变化。看起来这只是 node_redis 中的一个很小的修复exports.createClient
功能:
exports.createClient = function (port_arg, host_arg, options) {
var port = port_arg || default_port,
host = host_arg || default_host,
redis_client, net_client;
net_client = net.createConnection(port, host);
redis_client = new RedisClient(net_client, options);
redis_client.port = port;
redis_client.host = host;
return redis_client;
};
好像net.createConnection
如果使用一个看起来像路径的参数调用它,将尝试连接到 unix 套接字。我建议您实施修复并发送拉取请求,因为这似乎值得支持。