2013-06-26 130 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