lpush与数组后的node_redis rpop

时间:2018-12-17 22:10:39

标签: node.js redis node-redis

当我在以前将包含4个值的数组推入的列表上使用rpop时,Redis将按预期返回所有4个值。我的问题是它们作为单个值返回。有没有办法让Redis返回一个包含4个值的数组,而不是返回该数组包含的4个值?我正在使用node_redis客户端https://github.com/NodeRedis/node_redis。这是一些代码,可让您大致了解我在做什么。

redisClient.lpush(data.pushKey, data.rowTest);

data.rowtest看起来像这样[0,496,1,48]。

 redisClient.rpop(data.popKey, function (err, res) {
    if (err) { console.log(err); }

    if (res !== null) {
    client.send("fromList", { content: res });
    console.log(res);
    }
    });

我期望单行输出[0,496,1,48],但是我得到 0 496 1个 48 每个都放在单独的行上。

好吧,我很确定在解决上述问题之前,我需要学习如何使用异步javascript。

2 个答案:

答案 0 :(得分:0)

您需要确定它是4个元素中的单个元素。

如果要将每个值都视为一个元素,则需要分别发送它们,请参见this answer,然后在要弹出它时需要询问所有4个值。

如果要将整个数组作为单个值,则可以保留代码,并使用windows将结果转换回数组。

答案 1 :(得分:0)

好吧,这应该更明显了,这给我留下了其他一些问题,但是我通过在推送之前使用JSON.stringfy()和在弹出之后使用JSON.parse()解决了我的问题。 我猜想node_redis开发人员想保持数组和Redis列表之间的相似性,因此将数组值带入Redis列表...或Redis列表只是数组,因此这些数组可以串联为现有列表。