gpt4 book ai didi

node.js - 收到 Redis ZRANGE 的回复

转载 作者:IT王子 更新时间:2023-10-29 06:15:59 26 4
gpt4 key购买 nike

我目前有两个排序集,我正在尝试从一个集中获取所有分数和成员,并使用它从另一个集中删除成员。我使用的模块是 node_redis。

现在我正在尝试通过调用 client.zrange() 并将回复存储在数组中来获取成员和分数。

我假设回复将采用数组形式是否正确?我知道 redis api 说它返回一个“多批量回复”,但这到底是什么意思,如果它不是数组,我将如何使用它?

我还有一个问题,就是在使用zadd()时可以使用数组吗?一个例子是这样的。

client.zadd(historyKey, scores, members, function(err, reply){});

其中分数和成员是数组。

编辑:

我正在接收和解析 SNMP 陷阱。基本上我收到一个陷阱并检查它的警报类型。这些陷阱中的有用信息是警报类型和完整的陷阱名称。我检查警报是 0、1 还是 2。

如果它是 1,那么我会在收到它时将它存储在我的当前排序集中。如果它是 0 或 2,我知道该类型的警报已完成,我需要从当前集中删除所有类似的陷阱,并将它们与我刚收到的陷阱一起放入历史集中。

为了从当前集中删除陷阱并将它们放入历史记录中,我必须为每个单独的陷阱创建一个单独的集合,以便跟踪它们在当前集中的位置。

也就是说,如果我在时间 1346276537 收到陷阱“RGB Gamut Error( ----Bb )”并将其存储在 Current 中,我还将确切的分数和成员存储在一个单独的集合中,键为“IPAddress:RGB Gamut错误”。

这样当我收到名称为“RGB Gamut Error”的警报类型 0 或 2 时,我可以将 IP 地址附加到它的前面,在该组上执行 zrange,然后添加到历史记录并从当前删除。最后删除“IPAddress:RGB Gamut Error”设置,这样我就可以重新开始了。

旁注:我的成员实际上在末尾添加了两个数字,以使每个成员都独一无二并且不会相互覆盖。这真的是唯一的目的。

例如:IPAdress::RGB 色域错误 ( Rr--Bb ):5:46

最佳答案

Am I correct in assuming the reply would be in array form?

是的,node_redis 会将来自 zrange 的回复作为数组提供给您。

I also have another question and that is can I use an array when using zadd()? An example would be like this.

没有。在redis 2.4之前,一次只能发送一个参数(所以zadd key score member)。自 Redis 2.4 以来,zadd(以及许多其他命令)是可变参数,即它们接受任意数量的参数——但不作为数组。你仍然必须这样调用它:

client.zadd(key, score1, member1, score2, member2, ..., function(err, reply){});

您可以做一些 .apply 技巧,但您必须先将 scoresmembers 数组压缩到一个数组中。

更新:

如果您已经有了scoresmembers 数组,您可以像这样将它们合并到一个数组中:

var scores = [1, 2, 3],
members = ['a', 'b', 'c'];

function merge (other) {
return function (result, current, index) {
result.push(current, other[index]);
return result;
}
}

var merged = scores.reduce(merge(members), []);

// Now merged = [1, 'a', 2, 'b', 3, 'c'];

var args = [key].concat(merged).concat(function(err, reply){});

client.zadd.apply(client, args);

关于node.js - 收到 Redis ZRANGE 的回复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12166698/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com