我目前有两个排序集,我正在尝试从一组中获取所有分数和成员,并使用它从另一组中删除成员。我使用的模块是 node_redis。
现在我正在尝试通过调用client.zrange()
并将回复存储在数组中来获取成员和分数。
我是否正确假设回复将采用数组形式?我意识到redis api说它返回一个“多批量回复”,但这究竟意味着什么?如果它不是一个数组,我将如何使用它?
我还有另一个问题,那就是我可以在使用时使用数组zadd()
吗?一个例子是这样的。
client.zadd(historyKey, scores, members, function(err, reply){});
其中分数和成员是数组。
编辑:
我正在处理接收和解析 SNMP 陷阱。基本上我收到一个陷阱并检查它的警报类型。这些陷阱中的有用信息是警报类型和完整的陷阱名称。我检查警报是 0、1 还是 2。
如果它是 1,那么我在收到它时将它存储在我的当前排序集中。如果它是 0 或 2,我知道这种类型的警报已经完成,我需要从当前集中删除所有类似的陷阱,并将它们与我刚刚收到的那个一起放入历史集中。
为了从 Current 中移除陷阱并将它们放入历史记录中,我必须为每个单独的陷阱创建一个单独的集合,以便跟踪它们在 Current 集合中的位置。
也就是说,如果我在时间 1346276537 收到陷阱“RGB Gamut Error(----Bb)”并将其存储在 Current 中,我还将准确的分数和成员存储在一个单独的集合中,其中键为“IPAddress:RGB Gamut Error”。
这样,当我收到名称为“RGB Gamut Error”的警报类型 0 或 2 时,我可以将 IP 地址附加到它的前面,继续执行zrange
该设置,然后添加到历史记录并从当前删除。最后删除“IPAddress:RGB Gamut Error”设置,这样我就可以重新开始了。
旁注:我的成员实际上在末尾添加了两个数字,以使每个成员都独一无二并且不会相互覆盖。这真的是唯一的目的。
例如:IPAdress::RGB 色域错误(Rr--Bb):5:46