问题标签 [node-redis]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1734 浏览

join - 如何在 Redis 中执行“左连接”?

假设我有一个类似于 reddit 或堆栈溢出的结构。

例如假设我有一个像

我怎样才能得到与此类似的结果(获取帖子并附上用户对该项目的投票,假设已知 user_id 为 1):

目前我正在使用 sql 左外连接,但我正在尝试使用 redis 来实现它。我只是很难思考如何在redis中有效地表达这一点。

0 投票
1 回答
622 浏览

javascript - 节点 redis 发布者消耗过多内存

我使用node_redis库在节点中编写了一个小型 redis 发布者。程序完成发布 1M 条消息后,它会继续占用大约350 MB的内存。谁能提供任何线索为什么程序需要这么多内存以及如何释放内存?

以下是代码片段 -

0 投票
1 回答
649 浏览

javascript - 使用 nodejs 和 redis 调用的多阶段自动完成。一切完成后如何确保退货

我正在研究一个自动完成的原型。我查看了网络上的几个示例,它们是简单列表的自动完成。我的业务案例是多步骤的,因为自动完成必须处理同名但出生年份不同的人。

例子

用户类型:地理

返回可能的完成:

  • George 1976 - 父亲:George Sr. 母亲:Karen
  • 乔治 1980 年 - 父亲:杰克 母亲:帕姆
  • 乔治亚娜 1972 年 - 父亲:大卫 母亲:卡罗尔

所以我对我的 redis 调用有四个步骤:

  • zrank 前缀 'GEOR'
    • > 4
  • zrange 前缀 4 20
    • > 乔治
    • > 乔治*
    • > 乔治
    • > 格鲁吉亚
    • > 格鲁吉亚语
    • > 乔治亚娜*
  • (对于每个以 * 结尾的名称)
    • 成员“compnam:GEORGE”
      • > 'personid:10'
      • > 'personid:15'
    • smembers "compnam:GEORGIANA"
      • > 'personid:53'
  • (每个人)
    • hgetall 'personid:10'
    • hgetall 'personid:15'
    • hgetall 'personid:53'

希望这足够清楚。

我正在尝试创建与此类似的输出:

这是我的nodejs代码。

我对 Node.js 还是很陌生,所以我意识到我没有为 Node.js 的异步性质正确构建我的代码。任何帮助,将不胜感激。

-edit- 抱歉,不清楚。是的,console.log("Executed here before names are added") 是在其余工作完成之前执行的。最终这将更改为 res.send(returnNames)。我需要一些帮助来重组代码,以便一切都在最后一个 console.log 之前完成,或者如果我需要将我的最后一个 console.log 放在其他地方的不同回调中。

0 投票
1 回答
3653 浏览

node.js - Redis超时错误

谁能告诉我这个测试代码有什么问题?该程序最初运行良好,但不可避免地,在几个小时未使用后,我会收到 Redis 超时错误。请注意,我已将本文中的 redis 主机和密码更改为虚假信息。

请注意,无论我使用 node-redis 还是 iris-redis 驱动程序,我都会遇到同样的错误。

0 投票
1 回答
823 浏览

node.js - node_redis 回调参数

超级基本的问题——我怎么知道我应该为各种 node_redis 调用提供什么格式的回调?

似乎有些例子有两个参数(err,res),而其他例子有一个(res)

有没有明确的方法可以知道回调应该是什么样子?

0 投票
0 回答
367 浏览

node.js - Setting cookies in Express.js XHR response object from node_redis callback

I'm having trouble getting a cookie to be passed back with an Express.js response. The situation is that I'm making an XHR containing user credentials, checking if the user exists, if the user does exist and credentials are correct I store the users info in Redis via node_redis. In the callback that I hand Redis I create a cookie on the response object, then send the customer object to the browser.

Here is the Redis code (note: I'm not using Express sessions so I just added the Redis client into req.session via middleware):

The odd thing is that when I add a console.log(res._headers); right after creating the cookie, there is a 'set-cookie' header present, but it never makes it to the browser. Might I have bad request headers? Something else? I'm completely stumped here...

0 投票
1 回答
324 浏览

mongodb - MongoDB 在 Redis 上的“订阅”

是否可以在“master”中配置 Redis 和在“slave”中使用 MongoDB 的架构,以便在 MongoDB 中自动持久化 Redis 中的一些易失性信息?

示例:在 MongoDB 中持久保存在 Redis 中创建的用户的通知列表。

0 投票
1 回答
4268 浏览

node.js - 这是重用redis客户端的正确方法吗?

我创建了一个名为redisConnection.js. 其内容如下

现在,每当我想使用 redis 时,我只require需要模块并调用exposeConnection方法。我想知道这是否是重用连接的正确方法。我希望redis连接只被实例化一次,而不是每次我调用模块时。如果没有,有没有更好的方法重用它?

0 投票
1 回答
873 浏览

node.js - 节点和 Redis 队列

我正在尝试使用 Redis 创建一个 JSON 对象队列。

我目前使用 ZADD 创建有序集:

每次有新条目时如何增加分数?

0 投票
1 回答
889 浏览

session - restify with connect redis session 不处理 uncaughtException 异常(服务器关闭)

我正在使用节点 restify 连接 redis 会话设置。我正在通过 restify 的 'uncaughtException' 事件处理未捕获的异常。但是,当我使用 connect redis 时,未捕获到 uncaughtExceptions 并且服务器关闭。

如何重现:运行以下代码,然后在浏览器上导航到 localhost:8000/api/boom