由于共享主机,我的目标主机上的redis服务器不是在端口上运行,而是在非常特定的套接字上运行,该套接字可以通过套接字文件连接,只有我的用户可以访问。
但是,我还没有找到如何在node_redisand connect-redis包(我想使用的包)中通过套接字指定连接的方法。
node_redis
connect-redis
有人知道怎么做吗?
更新: 我下面的回答不是真的正确。事实证明,我下面提到的问题中的解决方案实际上仍然有效。IMO,这更多是巧合,但是您可以执行以下操作,并且应该可以:
var redis = require('redis'), client = redis.createClient('/tmp/redis.sock');
正如您从下面的代码片段中看到的那样,这将传递给net.createConnection它,并将其连接到unix socket /tmp/redis.sock。
net.createConnection
/tmp/redis.sock
旧答案:
关于此node_redis / issues / 204,存在一个封闭的问题。看来,底层的node.js net.createConnection API 似乎已经改变了。看来这对node_redis’ exports.createClient函数来说是一个很小的修正:
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套接字,似乎将尝试连接它。我建议您实施一个修复程序并发送请求请求,因为这似乎值得支持。