首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >收到Redis ZRANGE的答复

收到Redis ZRANGE的答复
EN

Stack Overflow用户
提问于 2012-08-28 20:01:40
回答 1查看 1.9K关注 0票数 1

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

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

我是否正确地假定答复将是数组形式的?我意识到redis说它返回一个“多批量回复”,但这到底意味着什么,如果它不是数组,我将如何使用它呢?

我还有另外一个问题,那就是在使用zadd()时,我能使用数组吗?一个例子就是这样。

代码语言:javascript
复制
client.zadd(historyKey, scores, members, function(err, reply){});

其中分数和成员是数组。

编辑:

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

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

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

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

这样,当我收到名为"RGB色域错误“的警报类型0或2时,我只需将IP地址附加到它的前面,在该集合上执行zrange,然后添加到历史记录并从当前删除。最后,删除"IPAddress:RGB色域错误“设置,以便重新开始。

Sidenote:我的成员实际上在末尾添加了两个数字,以便使每个成员都是唯一的,而不是相互覆盖。这真的是唯一的目的。

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

EN

回答 1

Stack Overflow用户

发布于 2012-08-29 09:39:31

我是否正确地假定答复将是数组形式的?

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

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

不是的。在redis 2.4之前,一次只能发送一个参数(所以是zadd key score member)。由于redis2.4,zadd (和许多其他命令)是可变的,即它们接受任意数量的参数--但不是作为数组。你还是得这样称呼它:

代码语言:javascript
复制
client.zadd(key, score1, member1, score2, member2, ..., function(err, reply){});

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

更新:

如果已经有scoresmembers数组,则可以将它们合并为一个数组,如下所示:

代码语言:javascript
复制
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);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12166698

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档