是否可以在 Redis 中获取多个排序集的计数?
我想要类似的东西:
redis.zcard(["YOLO", "YOLOSWAG"])
那应该返回 YOLO 和 YOLOSWAG 的计数。
命令文档没有说它需要多个参数,所以它没有。
但是,您可以根据需要处理任意数量的ZCARD
请求,例如(原谅我糟糕的 ruby)
counts = redis.pipelined do
["YOLO", "YOLOSWAG"].each do |key|
redis.zcard(key)
end
end
这个问题并不清楚,但如果你要求对两者都进行一次计数,你实际上可以比使用 Lua 流水线更快地做到这一点。想法是,您将在服务器端完成所有添加操作,因此无需通过网络将 n 个号码传回,您只需传输一个。如果您只有两个想要基数的键,这没什么大不了的,但我想我还是会提到它。它会是这样的(未经测试):
local total = 0
for i,k in ipairs(KEYS) do
total = total + redis.call('ZCARD', k)
end
return total