Redis MGET限制

时间:2017-03-09 22:13:07

标签: redis

我们计划将MGET用于我们的某个系统。在基准测试期间,我们能够在生菜中的一个MGET调用中检索1百万个密钥的值,并且非常惊讶。

我一直试图找到的是MGET的局限性。具体地,

  1. 在一次MGET通话中可以检索到的密钥数量是否有限制?
  2. 单个MGET呼叫返回的数据大小是否有限制?

1 个答案:

答案 0 :(得分:9)

  

在一次MGET通话中可以检索到的密钥数量是否有限制?

理论上,限制是int的最大值:0x7FFFFFFF。但是,在实践中,单个Redis实例中的密钥不能太多(内存太多)。

  

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

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

总之,来自Redis MGET太多密钥是个坏主意:它耗费了太多内存,并且长时间阻止了Redis。