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