Node.js 上通过套接字连接 Redis

2024-04-13

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

但是,我还没有找到如何通过套接字指定连接node_redis and connect-redis包,我想使用的包。

有人知道该怎么做吗?


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 套接字。我建议您实施修复并发送拉取请求,因为这似乎值得支持。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Node.js 上通过套接字连接 Redis 的相关文章

  • 使用 postgres 和 node js 在单个语句中执行多个查询

    我需要在像这样的单个语句中执行插入和删除查询 INSERT INTO COMPANY ID NAME VALUES 1 Paul DELETE FROM COMPANY WHERE ID 12 这是我用于执行查询的 node js 代码 p
  • findAndModify - MongoError:异常:必须指定删除或更新

    我想更新一个数组并返回文档 我的 findAndModify 语法正确吗 this becomeFollower function title username callback use strict posts findAndModify
  • 如何在node.js中同步读取文件或Stream?

    请不要讲授关于我应该如何异步完成所有事情的讲座 有时我想以简单明显的方式做事 这样我就可以继续其他工作 由于某种原因 以下代码不起作用 它与我在 a 上找到的代码匹配最近的问题 https stackoverflow com questio
  • 在nodejs中解密.Net cookie

    我在 Net 中创建了一个加密的cookie 并尝试在nodejs 中解密它的内容 但是nodejs不断抛出异常 TypeError DecipherFinal失败 在 Net中 我使用带有密钥的AES加密方法 932D86BB1448EE
  • Node.Js - 获取 Windows 用户名

    我正在尝试获取运行我的node jS应用程序的计算机的Windows用户名 该应用程序始终在Windows计算机上运行 如何使用 Node Js 获取当前的 Windows 用户名 我想找到类似的东西WindowsIdentity GetC
  • 通过套接字的身份验证方法

    我正在尝试通过套接字进行身份验证sailsjs and passport 挑战似乎在于套接字连接没有会话 并且 sailsjs 模拟请求对象 导致它没有 Passport 中间件设置 这导致nodejs抛出一个错误 说req对象没有调用的方
  • 如何在 Express (NodeJS) 中验证和处理表单

    Express 是否有首选的表单处理和验证库 我真的在寻找与 Django 表单中类似的抽象级别 即模板中的验证和错误报告 如果可以在客户端使用相同的验证 那就太好了 有人用过或者写过什么好东西吗 看起来有一个模块位于https githu
  • 用 Node.js 编写的 Azure Functions 可以访问连接字符串吗?

    Azure Function App 的应用程序设置包含可在门户中设置的数据库连接字符串的值 在 C 中 可以使用以下方式访问它们 ConfigurationManager ConnectionStrings ConnectionStrin
  • 何时使用node.js、sinatra、rails? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 这 3 种语言 框架的最佳用途是什么 混合所有 或 2 个 有用吗 如果您正在构建一个完整的 Web 应用程序 您可能应该使用 Rails 因为
  • 解析函数是否异步传递给 Promise 执行器?

    我有以下代码 function myPromiseFunc return new Promise resolve gt resolve Promise resolve 123 据我们所知Promise resolve方法立即用普通值解析 P
  • Angular 5 - ag-grid 18.0.1 - 边缘崩溃

    我一直在到处搜索 但无法找到与此相关的任何信息 很可能是因为 ag grid update 18 x 是新的 无论如何 似乎在将 ag grid 从 17 1 1 更新到 18 0 1 后 任何带有 ag grid 的页面最终都会导致 ED
  • 确定是否向 Firebase 实时数据库添加或删除数据

    每当添加新帖子时 我都会尝试将通知推送到 Android 应用程序 但是 只要数据 更改 即即使帖子被删除 我不需要 通知也会到达 我如何设置一个条件 以便 FCM 仅在添加帖子时才发送通知 这是我的 index js 文件 const f
  • 我应该在 Promise.all 中使用 wait 吗?

    我正在构建快速中间件 以对数据库进行两次异步调用 以检查用户名或电子邮件是否已在使用中 这些函数返回的承诺没有捕获 因为我想将数据库逻辑与 req res next 逻辑分开 并且我有集中的错误处理 需要next作为一个论点 在我对本地环境
  • Flask-SocketIO redis 订阅

    我在用着https github com miguelgrinberg Flask SocketIO https github com miguelgrinberg Flask SocketIO实现 WebSocket 服务器 我需要从另一
  • 将命令行参数传递给 npm 'pre' 脚本和具有多个命令的脚本

    有没有办法将命令行参数传递给 npm pre 脚本或运行多个命令的脚本 假设一个简单的脚本mySexyScript js这只是注销 process argv console log process argv 这有效 使用 npm 脚本 sc
  • 获取请求的客户端 IP 地址而不是 Cloudflare 的 IP 地址

    Cloudflare 会更改传入请求的 IP 地址 因为 Cloudflare 是我的网站和互联网之间的中间件 代理 我该怎么办获取请求的初始IP地址 而不是 Cloudflare 的 IP 地址 我听说过mod cloudflare但是这
  • Nodemailer:从未收到问候语

    当尝试使用 Nodemailer 在 Node 内发送电子邮件时 https github com nodemailer nodemailer https github com nodemailer nodemailer 调用sendMai
  • 在 GraphQL 服务器中实现访问控制的好模式是什么?

    背景 我有一组模型 包括用户和各种其他模型 其中一些模型包含对用户的引用 我公开这些模型 以便通过 GraphQL API 生成的查询Graffiti https github com RisingStack graffiti 由 Mong
  • 如何删除控制台中打印的字符

    我一直在搜索如何用其他语言执行此操作 发现必须使用特殊字符 b 来删除最后一个字符 如何删除控制台应用程序中打印的字符 linux https stackoverflow com questions 430713 how do i eras
  • 如何在Windows上正确使用node.js child_process.spawn()重定向?

    我有一个干净的 Windows 8 1 盒子 安装了最新的 node js v0 10 29 我在两个文件中有以下测试代码 a js var sub require child process spawn node b js silent

随机推荐

  • 无法在 mac os x mojave 上安装 mysqlclient

    我正在尝试在 mac os x mojave 上安装 mysqlclient sudo pip3 install mysqlclient 我收到以下错误 clang Wno unused result Wsign compare Wunre
  • PHP 8.0 中处理未定义数组键的最佳方法[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 几个月前 我升级到了 PHP 8 0 和许多开发人员一样 我也遇到了这个通知变成警告的麻烦 我不明白处理这个问题的正确方法 所以我想知道如何解决
  • 通过批处理文件终止 MS Access 进程

    我尝试打开 MS Access 延迟大约 5 秒 然后关闭应用程序 使用下面的 bat 文件 我可以打开程序 但在延迟后无法将其关闭 echo off start B Access C Program Files x86 Microsoft
  • 如何让 Emacs 在保存文件时创建中间目录?

    有没有办法在 emacs 中创建文件夹树 类似于 mkdir p in bash 基本上 我希望 emacs 创建所有中间模具 如果它们不存在 当我保存文件时 功能make directory这样做 您的具体问题可能会这样解决 add ho
  • 使用 AngularJS 为 Windows 应用商店应用程序“无法添加动态内容”,但它可以工作

    我正在使用 AngularJS 创建一个 Windows 应用商店应用程序 或 Metro 应用程序 或无论他们如何称呼它 我解决了 Javascript 运行时错误 无法添加动态内容 该错误导致应用程序崩溃 请参阅here http on
  • 为什么 Java 在其语言语法中不使用 out 参数,而 C# 则使用?

    虽然我不太喜欢在 C 中使用 out 参数 但我想知道为什么 Java 选择不在其语言语法中包含它 是否有任何特殊原因 或者可能是因为一个人可以简单地将对象作为参数类型传递 可能是因为设计者觉得没有必要允许多种返回对象的方式 关于委托 泛型
  • 区分按下“home”按钮和打开另一个 Activity

    我有三项活动 飞溅活动 主要活动 玩家活动 当然 应用程序从 SplashActivity 启动 然后启动 MainActivity 并关闭 MainActivity 在某个时刻启动 PlayerActivity 并进入后台 MainAct
  • Spring 与 Hibernate - 线程“main”中的异常 java.lang.NullPointerException

    我正在学习 spring 与 hibernate 集成 我遇到了这个异常 Exception in thread main java lang NullPointerException Sep 04 2014 7 06 50 PM org
  • 如何将WCF项目平台目标更改为x86?

    我编写了一个使用第三方项目的项目 只有在 项目属性 下的 构建 下的 平台目标 设置为 X86 而不是 我的项目 中的 任何CPU 时 我才能运行它 但是 当我尝试将此第三方项目与我的 WCF 项目一起使用时 平台目标 功能不会出现在 WC
  • Jenkins BlueOcean 中的“分支索引”活动是什么

    我正在詹金斯蓝海中设置多分支管道 一切都开始顺利进行 我注意到的一件事是 每隔一段时间 我就会执行名为 分支索引 的作业 我的构建包含一些繁重的单元测试和代码覆盖率 需要大约 4 小时 30 才能执行 所以让这个作业随机执行 2 次并不是很
  • 使用 Popen 替换 Python 中的 Bash 进程

    我试图通过从 python 子进程库调用 ffmpeg 来创建循环视频文件 这是给我带来问题的部分 import subprocess as sp sp Popen ffmpeg f concat i lt for f in Desktop
  • Oracle 在组中的列中查找具有多个值的行

    我正在尝试查找某个零件号 组 是否有多 个运营商 我已经尝试过下面的代码但不起作用 SELECT PART NO CARRIER ROW NUMBER OVER PARTITION BY PART NO CARRIER ORDER BY P
  • 如何向菜单项添加工具提示?

    我正在尝试为菜单栏项添加工具提示 例如 Save 但我无法获取需求菜单项的实例 我可以添加这个工具提示吗 我正在使用 Tkinter 和 python 2 7 def createMenu self menu Menu root root
  • 编写java代码时出现SIGSEGV

    我有一段代码在 HTC Desire HD v2 3 3 上运行得很好 但是在 HTC Desire v2 2 上运行时 关闭蓝牙套接字时会崩溃并出现 SIGSEGV 07 25 16 23 52 462 INFO DEBUG 64 07
  • 如何调用.Net Core需要签名的XML SOAP服务?

    我意识到这个问题指的是旧技术 我正在呼叫供应商系统 并且无法更改服务 我们需要调用 XML SOAP WS 然后签署请求 10 年前 我会使用 Web 服务增强 WSE 3 0 之类的东西 然后继续前进 就像今天一样 我陷入了在 Net C
  • 持久性单元定义冲突

    春季3 1 1 Maven 3 0 4 日本PA Eclipse wtp 靛蓝 你好 我在服务器启动时遇到以下异常 我的项目中只有一个 persistence xml 有任何想法吗 谢谢埃里克 引起原因 java lang IllegalS
  • Node.js 找不到模块“tcp”

    节点在以下行崩溃 var tcp require tcp 错误文本 node js 201 throw e process nextTick error or error event on first tick Error Cannot f
  • 可折叠工具栏布局中的稀松布是什么?

    我在 Android 开发人员上阅读了可折叠工具栏布局 那里使用了一个术语 稀松布 它是什么 Scrim 隐藏或掩盖某事的事物 根据 Android CollapsingToolbarLayout 稀松布内容 当滚动位置达到某个阈值时显示或
  • 使 WooCommerce 结账运送字段可见并删除“运送到不同地址?”复选框

    我想知道是否有办法删除 运送到其他地址 复选框 在 woocommerce 结帐页面中 但保持运输字段可见 我努力了 add filter woocommerce cart needs shipping address return fal
  • Node.js 上通过套接字连接 Redis

    由于共享托管 目标主机上的我的 redis 服务器不在端口上运行 而是在非常特定的套接字上运行 可以通过套接字文件连接到该套接字 只有我的用户可以访问 但是 我还没有找到如何通过套接字指定连接node redis and connect r