是否可以在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