当前位置: 首页 > 面试题库 >

通过Node.js上的套接字进行Redis连接

黄成荫
2023-03-14
问题内容

由于共享主机,我的目标主机上的redis服务器不是在端口上运行,而是在非常特定的套接字上运行,该套接字可以通过套接字文件连接,只有我的用户可以访问。

但是,我还没有找到如何在node_redisand connect-redis包(我想使用的包)中通过套接字指定连接的方法。

有人知道怎么做吗?


问题答案:

更新: 我下面的回答不是真的正确。事实证明,我下面提到的问题中的解决方案实际上仍然有效。IMO,这更多是巧合,但是您可以执行以下操作,并且应该可以:

var redis = require('redis'),
    client = redis.createClient('/tmp/redis.sock');

正如您从下面的代码片段中看到的那样,这将传递给net.createConnection它,并将其连接到unix socket
/tmp/redis.sock

旧答案:

关于此node_redis / issues /
204,
存在一个封闭的问题。看来,底层的node.js
net.createConnection
API 似乎已经改变了。看来这对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套接字,似乎将尝试连接它。我建议您实施一个修复程序并发送请求请求,因为这似乎值得支持。



 类似资料:
  • 本文向大家介绍通过Maven进行jedis连接redis的实现,包括了通过Maven进行jedis连接redis的实现的使用技巧和注意事项,需要的朋友参考一下 最近项目要用到redis,很多东西忘得差不多了,稍微回顾了利用Java客户端连接redis的过程,这里jedis是连接redis的Java客户端,如果没有Maven,需要手动下载jar包,很麻烦,于是这里使用Maven,记录下连接过程。 1

  • Nginx 1.1.4可用于与HTTP1的上游连接。1 keepalive指令,请参阅官方文档(它与keepalive客户端的连接不同)。所以独角兽的配置可以如下所示: HTTP连接需要这些标头:proxy_http_version和proxy_set_header。 所以问题是配置有效还是套接字连接本身是永久的?

  • 问题内容: 我正在考虑AJAX应用程序必须轮询轮询更新有多大限制,而最理想的是javascript能够建立与服务器的真正双向连接。我想知道是否存在将javascript与可以建立tcp连接的浏览器插件集成的方法,以便可以将数据传入和传出浏览器插件。 问题答案: 这是具有类似方法的实现: 套接字 它使用Java Applet,并将其API桥接到JavaScript,有趣的是… 这里是另一个: 套接字

  • 问题内容: 我已经尝试过将多种XMPP库用于Node.js,但是在连接到Google Talk的XMPP服务器时遇到了麻烦。我想联系并阅读朋友的状态,但我什至无法走出去! 我有一个通过Google Apps for Domains托管的个人域,例如。 我编写了以下代码-它使用了node-xmpp库(https://github.com/astro/node-xmpp): 建立了连接,但是身份验证失

  • 问题内容: 我将Redis To Go与https://github.com/mranney/node_redis库结合使用。Redis给了我一个看起来像的URL,但是我不知道如何使用它,因为它只占用了主机和端口。 问题答案: 我相信您拥有的网址的方案是: 。 我不相信被使用。提供了两种登录方法:和。自述文件中有详细信息,但以下是相关部分供参考: redis.createClient(端口,主机,

  • 问题内容: Node.js异步I / O是否需要Redis连接池? 我看到的大多数Redis库都允许您创建客户端连接,但是连接池模块并不多,因此我认为它并不那么重要。 令我困惑的一件事是,Redis在一个Redis实例中默认具有16个不同/分段的数据库。 因此,如果创建一个连接池,则连接到16个数据库中的哪个数据库?您可以使用同一连接池一次连接所有16个吗? 是否存在一个Node.js Redis