小编the*_*gsi的帖子

所有Redis命令都是异步的吗?

我是Redis和Node.JS的新手,并且一直试图将这两者结合使用.但是我对一个接一个地使用哪些功能感到有点困惑.

以下代码似乎同步运行,数据库的大小不断增加:

client.dbsize(function(err, numKeys) {
  console.log("DB Size before hashes added" + numKeys);
  return numKeys;
});

for (var i = 0; i < 100; i++) {
  client.hmset(i, "username", "username", "answer", "answer");
  client.zadd('answer', i, i);
};

client.dbsize(function(err, numKeys) {
  console.log("DB Size after hashes added" + numKeys);
  return numKeys;
});
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试查询排序集'answer'以返回一个数组时,此数组'reply'不能立即用于回调'zrevrangebyscore'之外的其他redis函数.

client.zrevrangebyscore('answer', 100, 0, function(err, reply) {
  console.log (reply);
  return reply;
});
Run Code Online (Sandbox Code Playgroud)

例如,在reply [1]上调用的后续'hgetall'函数返回undefined.我是否应该以异步方式使用所有Redis函数(包括hmset和dbsize)与callbacks/client.multi等,或者如果同步使用有效工作?感谢所有的帮助.

javascript asynchronous redis node.js node-redis

5
推荐指数
2
解决办法
7407
查看次数

标签 统计

asynchronous ×1

javascript ×1

node-redis ×1

node.js ×1

redis ×1