2017-03-09 38 views
3

我们正计划将MGET用于我们的系统之一。在基准测试期间,我们能够在生菜中的一次MGET调用中检索100万个键的值,并且非常惊讶。Redis MGET局限性

我一直在努力寻找的是MGET的局限性。具体来说,

  1. 是否有钥匙数的限制,可以在一个MGET呼叫检索?
  2. 单个MGET调用返回的数据大小是否有限制?

回答

5

在一个MGET调用中可以检索的Keys的数量是否有限制?

理论上,该限制是int的最大值:0x7FFFFFFF。但是,在实践中,您不能在单个Redis实例中拥有如此多的密钥(它会占用太多的内存)。

单个MGET调用返回的数据大小是否有限制?

理论上,没有限制。但是,实际上,Redis会在发送给客户端之前将返回的值保存在内存中,因此如果尝试使用MGET键太多,则会出现OOM问题。

总之,这是一个坏主意,MGET从Redis的太多键:它的成本太多的内存,并阻止Redis的很长一段时间。