问题标签 [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.
javascript - 使用 node-redis 获取多个密钥
我正在尝试从 redis 实例中获取一堆密钥。我正在使用节点redis。我正在使用一个循环:
但obj
只是未定义。我觉得我可能有问题,因为get
显然是异步调用的。还有另一种方法可以实现这一目标吗?我应该将值存储在排序集中吗?
node.js - 存在异步回调时,redis 哈希命令挂起 Node.js
我的目标是进行集成测试,以测试将值保存在 redis 中的节点模块。这是测试:
通过这个测试,问题是 redis 连接在 redis 刷新数据库之前关闭(如果我完全删除 db.end() ,测试挂起但 redis db 被刷新)。显然,async.series 没有像我预期的那样工作,每个函数都在下一个函数之前运行,或者我误解了?如何确保此测试在串行流中执行,以便在刷新之前不会关闭 redis 连接?...任何库/框架的任何建议可以帮助我在这里尝试完成什么?谢谢你
mysql - mysql的left join、inner join、union如何在redis中复制
我认为交叉引用是一种很好的学习方式。我对redis进行了一些研究,它表明作为一个无耻的数据库redis没有表。它有键值、键列表、键集和键排序集(zset)对,而不是表。
这种键数据对结构对我来说太陌生了。我更习惯于 mysql、sql 风格的数据库。
我在这里有一个 sqlFiddle,它演示了一个简单的内部连接示例。
我经常从 sql 中获取这些数据并将其重新建模为一个有意义的 JSON 对象,如下所示:
我的问题是:
如何在 redis 和 node.js 上模仿这种表结构?是否有用于外键的 redis 命令的构建?如果我别无选择,只能使用应用程序级数据重新建模,那么执行这种过程的正确方法是什么。
PS:交叉引用示例和有用的文章将被引用。
编辑: 是否可以通过 Redis 的 SINTER 命令完成类似连接的操作?
javascript - 处理异步 node_redis 函数,一次在两个键上使用 INCR 很尴尬
假设我的服务器正在准备发送一个新对象以响应 POST 请求:
现在,当我创建这个新对象时,我想增加我在 redis 中使用的UserId
和ItemID
计数器来跟踪这两个项目。但这似乎需要两个单独的异步回调,这对我来说似乎是个问题,因为我不能将其余的响应编写代码粘贴到其中一个回调中。
我的意思是,如果我只需要担心一个键和一个回调,我会写如下内容:
但是我需要做两个 INCR 回调怎么办?我认为这是不对的,因为一切都是异步的,我不能保证我的响应会被正确设置......
作为一个新手 node.js 和 redis 程序员,我觉得我错过了一些明显的东西......
node.js - 带有 node_redis 的 ZINTERSTORE 的动态参数
我正在尝试使用 node_redis 从 node.js 使用 redis 的 ZINTERSTORE 命令:
但是调用 client.ZINTERSTORE 会抛出错误:[Error: ERR syntax error]。将标签作为数组传递(而不是使用 tags.join(' '))会引发相同的错误。
在哪里可以找到此命令的正确语法?node_redis 的源代码将其隐藏在 javascript 解析器中,但如果不“单步执行”代码,就很难看到发生了什么。有没有一个很好的方法可以通过 node.js 进行单步调试?
javascript - 在 Node.js 中存储和检索套接字的最有效方法
目前,我将实际的套接字对象存储在每个进程的数组中。然后,我将套接字数据存储在 redis 中,以供所有进程(工作人员)访问。
是否有一种性能/效率更高的方法来存储和检索套接字,或者这几乎是如何完成的?当套接字数组可能增长到超过 200k 个对象时,我担心性能。
node.js - 套接字 io 显示的重复消息
我正在使用 redis 进行通知,它的工作原理是这样的 -
当 user1 有通知要与他的朋友分享时,我将该消息发布到用户每个朋友的所有频道。使用 socket.io 和 node,消息被推送给每个朋友,因为订阅部分是使用 node 处理的。
这工作正常,直到连接丢失。此时,在重新连接时,我发现朋友的频道发生了 2 次发布而不是 1 次发布,尽管像上一个案例一样只发生了 1 次活动。
他们的任何配置是否可以在重新连接时避免重复发布?
还发现,在重新连接时,它也在尝试使用辅助传输进行连接。这可能是问题吗?
javascript - 如何使用带有 for 循环的 Node.js 和 Redis 分配全局变量?
我正在尝试使用“for”循环以编程方式从 Node.js 中的 Redis 数据库中检索值,以迭代 GET 请求。我正在使用“redis”节点模块。我可以使用 console.log 将这些请求的值打印到服务器,但是,我无法将这些值中的每一个推送到全局数组以在另一个 node.js 模块中使用。我想知道这是否是由于 Redis 脚本的“全局变量保护”方面。我也想知道这里是否有解决方法。
redis-cli:
节点.js:
我希望 vals 数组分别输出与 a、b 和 c...或 1、2 和 3 关联的值。同样,目的是在另一个节点模块中使用这些值。
这是与全局变量保护相关的问题吗?有什么明显的选择吗?绝对觉得我错过了一些明显的东西。
node.js - 错误处理程序 Nodejs Redis 连接域失败
我尝试使用连接域来处理错误。在大多数情况下都可以,但它会因 redis 回调而失败。如何解决这个问题?
这是我的应用
我使用nodejs 0.8.16,所有模块都是最新的
node.js - 用于与 redis 和 socket.io 聊天的进程间通信和集群
我正在使用 nodejs、socket.io 和 redis 创建一个高级聊天系统。目标是建立一个聊天系统,其中一个联合聊天室供所有用户使用,但有额外的可能性来获得一对一支持的私人聊天。
我的 app.js 如下所示:
我的问题:聊天工作正常。集群本身正在工作,但我需要正确的 redis 集成。谁能帮助我如何做到这一点?我的解决方案通常是针对大量客户的高性能解决方案(第一步最多 1000-2000)吗?- 我知道我将不得不进行基准测试等等,但是你看到有什么东西会阻止我这样做吗?
我还需要一个解决方案,以便稍后拥有多个实例。我在http://blog.cloudfoundry.com/2013/01/24/scaling-real-time-apps-on-cloud-foundry-using-node-js-and-redis/上找到了该描述。我了解 socket.io 的多个实例的问题,但我不了解实现。有人可以提供一个简短的例子来说明如何做到这一点吗?