是否可以在Redis中计算多个有序集?
我想要类似的东西:
redis.zcard(["YOLO", "YOLOSWAG"])
那应该返回YOLO和YOLOSWAG的数量。
答案 0 :(得分:1)
命令文档并没有说它需要多个参数,所以它没有。
您可以根据需要管理尽可能多的ZCARD
个请求,例如(原谅我糟糕的红宝石)
counts = redis.pipelined do
["YOLO", "YOLOSWAG"].each do |key|
redis.zcard(key)
end
end
答案 1 :(得分:0)
从问题中不清楚,但如果你要求两者都有一个计数,你实际上可以通过使用Lua来实现这一点,而不是流水线操作。想法是,你会做所有添加服务器端,所以不需要通过网络传回n个号码,你只需转移一个。如果你只有2个你想要基数的键,那不是什么大不了的事,但想想我还是会提到它。它就像(未经测试):
local total = 0
for i,k in ipairs(KEYS) do
total = total + redis.call('ZCARD', k)
end
return total