如何使用NodeJS存储Redis中返回的词典列表?

时间:2018-04-23 22:09:30

标签: node.js redis

我正在编写一个NodeJS应用程序,它向第三方api发出get请求。这个api返回一个字典列表。我想取这个结果,并将其存储在我的redis客户端中。我该怎么做?

结果对象如下所示 -

[{"foo":123, "bar":456}, {"foo":789, "bar":012}]

2 个答案:

答案 0 :(得分:0)

听起来你不需要查询dicts中的元素,所以将它们作为json字符串存储在redis列表中应该没问题。当您批量添加到列表中时,您可以对它们进行字符串化,只需确保使用某种形式的管道衬里,这样您就不会进行不需要的api调用。然后,您可以在需要时简单地解析json字符串dicts。例如:

function setList (list, callback) {
  const pipeline = redis.pipeline();
  for (const dict of list) {
    pipeline.rpush('myList', JSON.stringify(dict));
  }
  pipeline.exec(callback);
}

function popList (callback) {
  redis.lpop('mylist', function (error, data) {
    if (error) { return callback(error) }
    callback(null, JSON.parse(data));
  });
}

答案 1 :(得分:0)

我会简单地假设您的数据为列表或列表为字符串,

      let redis = require("redis"),
      publisher = redis.createClient(option.redisPort, option.redisHost); 
      publisher.publish("id", DATA);  // here we publish the data. 

你在找这样的东西吗?