是否有用于node.js的阻塞Redis库?

| Redis非常快。在我的机器上,大多数情况下它的速度与node.js中的本机Javascript语句或函数调用一样快。在node.js中编写常规的Javascript代码很容易/很轻松,因为不需要回调。我不明白为什么使用node.js在Redis中获取/设置键/值数据不那么容易。 假设node.js和Redis在同一台机器上,是否有任何npm库允许使用阻塞调用与node.js上的Redis交互?我知道这必须是与V8接口的C / C ++库。     
已邀请:
我想您想确保已执行所有Redis插入操作。为此,可以使用MULTI命令插入键或执行其他操作。 https://github.com/mranney/node_redis模块将多对象中推送的命令排入队列,并相应地执行它们。 这样,您只需要在exec调用结束时进行一次回调即可。     
对于试图习惯于Node \的事件编程模型的开发人员来说,这似乎是一个常见的陷阱。 这是什么情况:您遇到了一种异步/回调模式不适合的情况,您发现需要的是某种方式来执行阻塞代码,您向Google / StackExchange询问了有关Node中阻塞的信息,并且您所获得的一切关于阻塞的严重程度的警告。 他们是对的-阻塞((“在执行其他操作之前先等待结果)”)不是您应该在Node中尝试执行的操作。但是我认为更有用的是认识到99.9%的时间中,您并不是真正在寻找阻止的方法,而是在寻找一种使您的应用程序“等待应用程序”的方法。继续执行此操作之前的结果,\“这不是完全相同的事情。 尝试在Node中研究“流控制”的概念,而不是“阻塞”的一些设计模式,这些设计模式可能更适合您要执行的操作。以下是要检查的库的列表: https://github.com/joyent/node/wiki/modules#wiki-async-flow 我也是Node的新手,但我确实在研究Async:https://github.com/caolan/async     
阻塞代码创建了一个巨大的瓶颈。 如果您使用阻止代码,则服务器将变得非常慢。 记住,节点是单线程的。因此,任何阻止代码都将为每个连接的客户端阻止节点。 您自己的基准测试表明它对于一个客户来说足够快。您是否以1000位客户为基准?如果您尝试这样做,您将了解为什么阻塞代码不好     
尽管Redis很快,但它不是瞬时的...这就是为什么要继续执行以确保值在那里就必须使用回调的原因。 我认为您可以(但不建议您这样做)的唯一方法是使用带有变量的回调,该变量是离开计时器的谓词。     

要回复问题请先登录注册