是否有可能在Redis中获得多个有序集合的计数?Redis ZCARD多个密钥(redis-rb)
我想是这样的:
redis.zcard(["YOLO", "YOLOSWAG"])
应该返回YOLO和YOLOSWAG的计数。
是否有可能在Redis中获得多个有序集合的计数?Redis ZCARD多个密钥(redis-rb)
我想是这样的:
redis.zcard(["YOLO", "YOLOSWAG"])
应该返回YOLO和YOLOSWAG的计数。
命令文档没有说它需要多个参数,所以它没有。
可以管线多达ZCARD
请求,只要你想,不过,像(原谅我糟糕的红宝石)
counts = redis.pipelined do
["YOLO", "YOLOSWAG"].each do |key|
redis.zcard(key)
end
end
它不是从问题明确,但如果你问一个单数两者都可以通过使用Lua来实现这一点比流水线更快。想法是,你会做所有的服务器端添加,所以不需要通过网络传输n个数字,而只需传输一个数字。没有什么大不了的,如果你只有2个你想要基数的键,但是我想我会提到它。它会像(未经测试):
local total = 0
for i,k in ipairs(KEYS) do
total = total + redis.call('ZCARD', k)
end
return total