【问题标题】:Insert array into redis from NodeJS从NodeJS将数组插入redis
【发布时间】:2018-05-08 05:33:01
【问题描述】:

我有一个数组,我填写如下:

var obj = [];
for(i = 0; i < data.bids.length; i += 1) {
    obj.push(JSON.parse(data.bids[i][0]));
}

之后我验证数组是否包含所需的值(它包含):

console.log("Array after the for: \n");
console.log(obj);

我尝试将其保存在 redis 键下,但 replyundefined

client.set('order-book:buy:bitstamp', obj, function(err, reply) {
    console.log(reply);
});

我也试过rpush,但没有运气。
可能是什么问题?

【问题讨论】:

  • 你检查err了吗? .set 需要一个字符串,看起来你想要client.set(key, JSON.stringify(obj), function (err, reply) { if (err) { console.error(err); } console.log(reply); });
  • client.rpush(key, array, callback) 可能是您最终会得到的结果,因为 list 是您的数据更自然的数据类型,如果密钥已设置为其他数据类型(如果你用了一套)
  • 它适用于JSON.stringify,如果我使用rpush,我会得到undefined

标签: node.js redis node-redis


【解决方案1】:

您可以在此处查看哪些类型与 redis 值兼容 data-types-intro.

如果您需要在 redis 中保存对象数组,唯一的方法是使用JSON.stringify(obj)。 所以在你的例子中,它看起来像:

const redisValue = JSON.stringify(obj);
client.set('order-book:buy:bitstamp', redisValue, function(err, reply) {
    console.log(reply);
});

从 redis 读取数据时,您可以轻松使用JSON.parse(redisResponse)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-14
    • 2021-12-13
    • 2022-08-14
    • 2018-08-03
    • 2017-02-25
    相关资源
    最近更新 更多