Redis ZCARD多个密钥(Redis rb)



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

最新更新