我们计划将MGET用于我们的某个系统。在基准测试期间,我们能够在生菜中的一个MGET调用中检索1百万个密钥的值,并且非常惊讶。
我一直试图找到的是MGET的局限性。具体地,
答案 0 :(得分:9)
在一次MGET通话中可以检索到的密钥数量是否有限制?
理论上,限制是int的最大值:0x7FFFFFFF。但是,在实践中,单个Redis实例中的密钥不能太多(内存太多)。
单个MGET调用返回的数据大小是否有限制?
理论上,没有限制。但是,实际上,Redis会在发送到客户端之前将返回的值保存在内存中,因此如果您尝试MGET
太多密钥,则会出现OOM问题。
总之,来自Redis 的MGET
太多密钥是个坏主意:它耗费了太多内存,并且长时间阻止了Redis。