问题标签 [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 投票
3 回答
16070 浏览

node.js - Node JS Redis 客户端连接重试

目前我正在使用https://github.com/mranney/node_redis作为我的节点 redis 客户端。

client.retry_delay默认设置为 250 毫秒。

我尝试连接到redis,一旦连接成功,我手动停止了redis服务器以查看是否client.retry_delay有效。但我没有看到它工作。

以下日志消息在使用创建的 redisClients上记录ready和事件:endcreateClient

当服务器恢复正常时,我没有再次看到成功消息 [未触发就绪事件]。

我错过了什么吗?什么时候使用重试常量?是否有办法在节点发生故障后查找 redis 服务器是否启动?

0 投票
1 回答
2675 浏览

node.js - node_redis :在 forEach 中使用 client.multi

我有以下代码应该检索设备列表并获取每个设备的状态和标签:

devices 是一个 id 列表。对于每个 id,有 2 个键:“ID:status”、“ID:label”

h.respond 是一个发送 http 响应的辅助方法。

我可以看到每个循环都将新数据添加到 jsonObj 中,但是当所有循环完成时,它是空的。

0 投票
1 回答
3849 浏览

node.js - 节点 Redis 客户端不使用方法“HMSET”

我有以下失败的代码块:

错误堆栈如下:

我正在使用 Node Redis 客户端运行 Node 0.6.17。有什么见解吗?谢谢!

0 投票
2 回答
622 浏览

node.js - 你可以使用 Lua 脚本来让 Redis 抛出事件吗?

我正在尝试创建一个抽象,我可以在其中侦听 redis 集合的更改事件并将键、值传递给回调。我想知道是否可以在新版本上使用 Lua 脚本来执行此操作。

谢谢!

0 投票
2 回答
3364 浏览

node.js - redis hget 在代码片段中返回 null 但在 redis-cli 中有效

以上是我的代码片段。redis-cli hget 命令返回正确的答案,确认我使用正确的键和字段/值正确设置了哈希。但是,上面的代码片段为 hget 返回“null”,(convID 具有正确的值,这是 hget 的字段)-我不明白为什么-

0 投票
1 回答
3306 浏览

node.js - Node.js redis“未知命令'hset'”?

我是redis的新手,我正在尝试各种例子。但是,它似乎不起作用:

我正在为 node-redis 使用 github 页面上的示例脚本之一。我在 Debian Squeeze 上。

0 投票
1 回答
3131 浏览

node.js - 使用redis的NodeJS - 使用hiredis安装与不安装?

我正在将 redis 集成到我的 NodeJS 服务器应用程序中,并且正在尝试确定是否使用hiredis 命令安装 node_redis。我假设如果它以某种方式没有用,安装它的选项就不会可用。同时,node_redis 的 github 页面 (https://github.com/mranney/node_redis) 明确指出,升级到较新版本的 nodeJS 可能会导致添加的hiredis 选项出现问题。

有人可以列出添加hiredis与不添加的不成文的利弊吗?与 C 库一起使用有多少性能提升?

0 投票
2 回答
3019 浏览

node.js - Redis 重启时的 Node.js + Socket.io 和 Redis Store 问题

我希望其他人以前遇到过这个问题:

问题描述

我已将 Socket.IO 配置为使用 redis-store 模块,该模块非常适合在向房间广播/发出事件时保持我们的节点实例同步。但是,我一直在测试故障点,似乎当 redis 实例重新启动时,节点服务器停止接收来自其他节点的消息。

这是我设置socket.io客户端的方式(在这段代码之前创建redis连接)

本质上,每当 redis 崩溃/重启时,socket.io redis-store 无法继续通过 redis 向其他节点服务器发送事件。

重新连接到 redis 服务器是否需要采取任何特殊步骤?我花了很多时间四处寻找,希望能找到解决这个问题的方法,但没有任何运气。

问候,

-瑞安

0 投票
2 回答
6082 浏览

node.js - Redis 连接从关闭事件中消失

在我们的 redis 配置中,我们设置了 timeout: 7 seconds

node_redis我们处理 redis 连接就绪和结束事件为

样本日志

[2012-07-11 08:21:29.545] [致命] 生产 - 连接终止于 'xxx9' '6399'
[2012-07-11 08:21:29.803] [信息] 生产 - 连接成功建立到' xxx9' '6399'

但是在某些情况下(很可能 redis 正在关闭连接而不通知客户端)我们看到命令队列堆积起来并且请求花费了太多时间来获得响应[直到 node-redis 客户端能够感知到关闭事件的时间]。在所有此类情况下,都会返回带有此错误的命令回调Redis connection gone from close event。即使经过这么多的等待。由于没有触发通常的结束事件,因此看起来这不是问题。

问题似乎与此类似 - http://code.google.com/p/redis/issues/detail?id=368

这是redis中发生的已知事情吗?

有没有办法指定命令的执行[发送和接收回复]不应该超过阈值并在这种情况下回复错误,而不是让客户端停止?

或者在像socket_timeout这样的情况下还有其他触发关闭事件的方法吗?

或者我们应该从我们的 redis 方面检查一些东西?我们在级别上监控了我们的 redis 日志,debug但没有发现与此问题相关的任何有用信息

当我们在调试模式下运行 node-redis 时,我们可以清楚地看到客户端因请求堆积在命令队列中而停滞不前。我们在flush_on_error函数中记录了原因和队列长度。我们一直禁用offline_queuing 。

样本日志

Redis 连接已从关闭事件中消失。离线队列 0 命令队列 8

请求失败的响应时间:30388 ms [这取决于命令队列中的等待时间。第一个排队的人的响应时间最长,后面的人响应时间更短]

通常的响应时间:1 毫秒

PS:我们也在 node_redis中提交了一个问题

0 投票
1 回答
143 浏览

javascript - 在 node_redis 上实现 findBy 方法,但是它不起作用

全部。我在 node_redis 模块中实现 findBy("name","password") ,遵循此。

用户.js

但是,User.findBy(user.name,user.password) 函数返回 undefined ,console.log(res) 被记录

喜欢{名称:“nobinobiru”,密码:“harashin0219”}

我想知道为什么 findBy 函数返回 res 未定义,但console.log(res)工作正常。请帮忙。

提前致谢。