NodeJS和Redis:同时获得三个值

Mar*_*772 2 get redis node.js

目前我这样做是为了在NodeJS和Redis中使用node-redis获取许多值:

redis.get('data1', function(err, data1)
{ 
     redis.get('data2', function(err, data2)
     {
         redis.get('data3', function(err, data3)  
         {

              if (data3 == xx && data2 == xx && data3 == xx)
              { 
                  console.log('its ok'); 
              }

          });
      });
});
Run Code Online (Sandbox Code Playgroud)

问题是三个请求将是一个接一个,我想一次做3,然后像这样调用我的条件(这不起作用它只是为了你理解我想要的):

redis.get('data1', function(err, data1) { var data1 = data1; });
redis.get('data2', function(err, data2) { var data2 = data2; });
redis.get('data3', function(err, data3) { var data3 = data3; });
// When the 3 get operations was finished 
if (data3 == xx && data2 == xx && data3 == xx)
{ 
    console.log('its ok'); 
}
Run Code Online (Sandbox Code Playgroud)

先感谢您

Ofi*_*zon 12

MGET可能是最快的,而不是来回3次:

client.mget(["data1", "data2", "data3"], function (err, res) {
    console.dir(res);
});
Run Code Online (Sandbox Code Playgroud)


Bar*_*klı 8

您可以使用mgetbatch

redis.mget(['data1', 'data2', 'data3'], cb);
Run Code Online (Sandbox Code Playgroud)

或者

redis.batch().get('data1').get('data2').get('data3').exec(cb);
Run Code Online (Sandbox Code Playgroud)