0

是否可以在 Redis 中获取多个排序集的计数?

我想要类似的东西:

redis.zcard(["YOLO", "YOLOSWAG"])

那应该返回 YOLO 和 YOLOSWAG 的计数。

4

2 回答 2

2

命令文档没有说它需要多个参数,所以它没有。

但是,您可以根据需要处理任意数量的ZCARD请求,例如(原谅我糟糕的 ruby​​)

counts = redis.pipelined do
    ["YOLO", "YOLOSWAG"].each do |key|
       redis.zcard(key)
    end
end
于 2013-06-26T17:58:35.390 回答
1

这个问题并不清楚,但如果你要求对两者都进行一次计数,你实际上可以比使用 Lua 流水线更快地做到这一点。想法是,您将在服务器端完成所有添加操作,因此无需通过网络将 n 个号码传回,您只需传输一个。如果您只有两个想要基数的键,这没什么大不了的,但我想我还是会提到它。它会是这样的(未经测试):

local total = 0
for i,k in ipairs(KEYS) do
    total = total + redis.call('ZCARD', k)
end
return total
于 2013-06-27T22:15:27.053 回答