Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Redis 建议/意见,用于实施快速高效的方法来搜索超大数据集中的项目列表_Redis_Nosql_Large Data - Fatal编程技术网

Redis 建议/意见,用于实施快速高效的方法来搜索超大数据集中的项目列表

Redis 建议/意见,用于实施快速高效的方法来搜索超大数据集中的项目列表,redis,nosql,large-data,Redis,Nosql,Large Data,请评论和批评该方法。 场景:我在一个平面文件中有一个大数据集(2亿个条目)。数据的形式为:10位电话号码,后跟5-6个二进制字段。 每周我都会得到一个Delta文件,其中只包含对数据的更改 问题:给定一个项目列表,我需要确定每个项目(10位数字)是否存在于数据集中 我计划的方法: 将解析数据集并将其放入DB(将在 周)比如MySQL或者Postgres。我希望在应用程序中使用RDBMS的原因 第一步是我想要完整的时间序列数据 然后使用 支持操作的最新有效数据,以确定 每个项目是否存在于数据集中

请评论和批评该方法。

场景:我在一个平面文件中有一个大数据集(2亿个条目)。数据的形式为:10位电话号码,后跟5-6个二进制字段。 每周我都会得到一个Delta文件,其中只包含对数据的更改

问题:给定一个项目列表,我需要确定每个项目(10位数字)是否存在于数据集中

我计划的方法

  • 将解析数据集并将其放入DB(将在 周)比如MySQL或者Postgres。我希望在应用程序中使用RDBMS的原因 第一步是我想要完整的时间序列数据

  • 然后使用 支持操作的最新有效数据,以确定 每个项目是否存在于数据集中(考虑某种类型的 NOSQL数据库,像这里的Redis一样为搜索而优化。应该有 持久性和可分布性)此数据结构将是只读的

  • 查询此键值存储以了解每个项是否存在 (如果可能,一次匹配所有值的列表,而不是匹配 一次一项)。希望这是燃烧的快将使用此功能作为REST API的后端


旁注:我最喜欢的语言是Python。

快速查找的一些注意事项:

  • 如果您想一次检查一组数字,可以使用Redis
    SINTER
    执行集合交集
  • 通过将数字范围分布在一些散列函数上,例如电话号码的第一位数字(可能有更好的数字,您必须进行实验),您可能会从使用网格结构中受益,这将例如,在使用最佳散列时,将每个节点的大小减少到使用10个节点时的近2000万个条目
  • 如果您希望重复请求(很有可能),您可以将最后n个请求的电话号码缓存在一个较小的集合中,然后首先查询该集合

快速查找的一些注意事项:

  • 如果您想一次检查一组数字,可以使用Redis
    SINTER
    执行集合交集
  • 通过将数字范围分布在一些散列函数上,例如电话号码的第一位数字(可能有更好的数字,您必须进行实验),您可能会从使用网格结构中受益,这将例如,在使用最佳散列时,将每个节点的大小减少到使用10个节点时的近2000万个条目
  • 如果您希望重复请求(很有可能),您可以将最后n个请求的电话号码缓存在一个较小的集合中,然后首先查询该集合

我认为最好解释您在适应Q(和a)格式方面所面临的具体疑问或问题。考虑到这一点,我们将在将来牢记这一点。我认为最好解释您在适应Q(和a)格式方面所面临的具体疑问或问题。考虑到这一点,将在将来记住这一点。您可能希望在位集中存储“have data”标志:您可能希望在位集中存储“have data”标志: