问题标签 [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.
node.js - Node JS Redis 客户端连接重试
目前我正在使用https://github.com/mranney/node_redis作为我的节点 redis 客户端。
client.retry_delay
默认设置为 250 毫秒。
我尝试连接到redis,一旦连接成功,我手动停止了redis服务器以查看是否client.retry_delay
有效。但我没有看到它工作。
以下日志消息在使用创建的 redisClients上记录ready
和事件:end
createClient
当服务器恢复正常时,我没有再次看到成功消息 [未触发就绪事件]。
我错过了什么吗?什么时候使用重试常量?是否有办法在节点发生故障后查找 redis 服务器是否启动?
node.js - node_redis :在 forEach 中使用 client.multi
我有以下代码应该检索设备列表并获取每个设备的状态和标签:
devices 是一个 id 列表。对于每个 id,有 2 个键:“ID:status”、“ID:label”
h.respond 是一个发送 http 响应的辅助方法。
我可以看到每个循环都将新数据添加到 jsonObj 中,但是当所有循环完成时,它是空的。
node.js - 节点 Redis 客户端不使用方法“HMSET”
我有以下失败的代码块:
错误堆栈如下:
我正在使用 Node Redis 客户端运行 Node 0.6.17。有什么见解吗?谢谢!
node.js - 你可以使用 Lua 脚本来让 Redis 抛出事件吗?
我正在尝试创建一个抽象,我可以在其中侦听 redis 集合的更改事件并将键、值传递给回调。我想知道是否可以在新版本上使用 Lua 脚本来执行此操作。
谢谢!
node.js - redis hget 在代码片段中返回 null 但在 redis-cli 中有效
以上是我的代码片段。redis-cli hget 命令返回正确的答案,确认我使用正确的键和字段/值正确设置了哈希。但是,上面的代码片段为 hget 返回“null”,(convID 具有正确的值,这是 hget 的字段)-我不明白为什么-
node.js - Node.js redis“未知命令'hset'”?
我是redis的新手,我正在尝试各种例子。但是,它似乎不起作用:
我正在为 node-redis 使用 github 页面上的示例脚本之一。我在 Debian Squeeze 上。
node.js - 使用redis的NodeJS - 使用hiredis安装与不安装?
我正在将 redis 集成到我的 NodeJS 服务器应用程序中,并且正在尝试确定是否使用hiredis 命令安装 node_redis。我假设如果它以某种方式没有用,安装它的选项就不会可用。同时,node_redis 的 github 页面 (https://github.com/mranney/node_redis) 明确指出,升级到较新版本的 nodeJS 可能会导致添加的hiredis 选项出现问题。
有人可以列出添加hiredis与不添加的不成文的利弊吗?与 C 库一起使用有多少性能提升?
node.js - Redis 重启时的 Node.js + Socket.io 和 Redis Store 问题
我希望其他人以前遇到过这个问题:
问题描述
我已将 Socket.IO 配置为使用 redis-store 模块,该模块非常适合在向房间广播/发出事件时保持我们的节点实例同步。但是,我一直在测试故障点,似乎当 redis 实例重新启动时,节点服务器停止接收来自其他节点的消息。
这是我设置socket.io客户端的方式(在这段代码之前创建redis连接)
本质上,每当 redis 崩溃/重启时,socket.io redis-store 无法继续通过 redis 向其他节点服务器发送事件。
重新连接到 redis 服务器是否需要采取任何特殊步骤?我花了很多时间四处寻找,希望能找到解决这个问题的方法,但没有任何运气。
问候,
-瑞安
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中提交了一个问题
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)
工作正常。请帮忙。
提前致谢。