当前位置: 首页 > 知识库问答 >
问题:

Redis扫描与大量按键匹配性能?

黄成荫
2023-03-14

找不到任何有关redis扫描匹配的信息

共有1个答案

曾云
2023-03-14

扫描基本上是keys命令的替代,而keys命令是阻塞的。它将返回一个光标,使用该光标,您需要再次扫描,并且该过程将继续。重复也是可能的,所以你需要在应用程序逻辑中处理它们,这意味着,即使你只有100万个密钥,每次扫描1万个项目,它也可以运行10次以上。

因此,这实际上是一种折衷,而不是使用keys(keys是一个阻塞命令,但速度很快),您可以使用scan,它与keys命令相比速度较慢,但在生产环境中不会阻塞,并且仍然可以实现您需要的功能。

希望这有帮助

 类似资料:
  • 对于何时选择GSI或其他方式的全表扫描,是否有任何衡量标准? 我知道两者背后的基本概念,但GSI的定价模型非常依赖于表格本身,我很难决定 更重要的是,如何在不同的表大小下进行扩展,或者多少扫描效率太低,而需要GSI 顺便说一下,我很难找到好的资源来过滤表达式,以便在dynamodb上进行查询和扫描,有什么好的建议吗?(“#v

  • 我正在尝试找出存储在一个匹配Redis模式的键列表中的值。我尝试使用以便稍后使用获取所有值,但问题是: 返回所需的键。如何强制查看所有现有键?我得去查lua吗?

  • 问题内容: 我正在尝试与Laravel 一起使用Redis。我可以发出一个返回10个键的请求,但我希望循环直到所有键都返回。我不确定如何使用laravel进行此操作。目前我有 我不知道是否有一种“ laravel”的方式。 编辑: 我使用作曲家进行导入并与之合作 但是我想知道laravel的方式 编辑: var_dump的单 问题答案: 当Redis外观直接将命令传递给Predis(或您可能会说R

  • 我正在用Java编程 我正在尝试编写代码,以识别用户是否在基于控制台的程序中按enter键。 我如何使用java做到这一点。有人告诉我,这可以使用Scanner或缓冲输入阅读器来完成。我不明白(或不知道如何使用)缓冲输入阅读器。 我试着用scanner来做这件事,但按了两次enter键后,程序终止,无法工作 谢啦 --编辑--以下代码使用字符串的方法而不是 如何做到这一点,使用缓冲输入读取器的好处

  • 问题内容: 我使用python redis通过使用match选项来匹配某些信息吗?但这不起作用。 似乎match选项在scan命令中确实起作用。 在[68]中:cache.rds.execute_command(“ scan”,“ 0”,match =“ userinfo_ *”)Out [68]:[‘28’,[‘user_dev_20199116’,’devinfo_af85d776fcc9db

  • 问题内容: 我试图找出存储在与redis模式匹配的键列表中的值。我尝试使用,以便以后可以用来获取所有值,问题是: 不返回任何值,而 返回所需的键。我如何强制浏览所有现有键?我需要为此研究lua吗? 问题答案: 使用下面的代码,您将从光标0扫描1000个第一个对象 结果,您将获得一个新的光标以进行调用 扫描1000个下一个对象。然后,当您从1000增加到10000并检索数据时,您将扫描更多键,然后再