【发布时间】:2011-05-23 15:06:27
【问题描述】:
Redis 非常快。大多数情况下,在我的机器上,它与 node.js 中的原生 Javascript 语句或函数调用一样快。在 node.js 中编写常规 Javascript 代码很容易/无痛,因为不需要回调。我不明白为什么使用 node.js 在 Redis 中获取/设置键/值数据不应该那么容易。
假设 node.js 和 Redis 在同一台机器上,是否有任何 npm 库允许使用阻塞调用与 node.js 上的 Redis 交互?我知道这必须是一个与 V8 接口的 C/C++ 库。
【问题讨论】:
-
你不想阻塞节点中的库。
-
你能解释一下为什么你想以一种引人注目且有用的方式对 nodejs 进行阻塞调用吗?
-
我知道阻塞调用会造成巨大的瓶颈。我可以使用原生 Javascript 函数(例如:正则表达式等)并以阻塞方式循环,在 V8 中执行得非常快。如果获取/设置 Redis 数据几乎可以一样快,为什么我不能使用一些具有 getSync、hsetSync 等功能的阻塞 Redis 库?这使得编写代码更容易(val = client.getSync(key); #1 行)而不是使用回调(3 行以上)。
-
你高估了“几乎”。 redis 的速度至少是 for 循环和正则表达式的 1000 倍。
-
如果要处理阻塞调用,为什么选择使用 node.js?