2013-06-26 90 views

回答

1

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

可以管线多达ZCARD请求,只要你想,不过,像(原谅我糟糕的红宝石)

counts = redis.pipelined do 
    ["YOLO", "YOLOSWAG"].each do |key| 
     redis.zcard(key) 
    end 
end 
0

它不是从问题明确,但如果你问一个单数两者都可以通过使用Lua来实现这一点比流水线更快。想法是,你会做所有的服务器端添加,所以不需要通过网络传输n个数字,而只需传输一个数字。没有什么大不了的,如果你只有2个你想要基数的键,但是我想我会提到它。它会像(未经测试):

local total = 0 
for i,k in ipairs(KEYS) do 
    total = total + redis.call('ZCARD', k) 
end 
return total