gpt4 book ai didi

redis - 实现快速有效的方法来搜索非常大的数据集中的项目列表的建议/意见

转载 作者:IT王子 更新时间:2023-10-29 06:16:06 30 4
gpt4 key购买 nike

请评论和批评该方法。

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

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

我计划的方法:

  • 将解析数据集并将其放入数据库(在开始时完成周)像 MySQL 或 Postgres。我想在其中使用 RDBMS 的原因第一步是我想要完整的时间序列数据。

  • 然后从这个数据库中生成某种键值存储支持运算的最新有效数据,查看是否每个项目是否存在于数据集中(考虑某种NOSQL 数据库,如此处针对搜索优化的 Redis。应该有持久性和分布式)。 此数据结构将是只读的

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

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

最佳答案

快速查找的几个注意事项:

  • 如果您想一次检查一组数字,可以使用执行集合交集的 Redis SINTER
  • 您可能会从使用网格结构中获益,方法是将数字范围分布在某些哈希函数上,例如电话号码的第一位数字(可能有更好的,您必须进行试验),例如在使用 10 个节点时,使用最佳哈希将每个节点的大小减少到接近 2000 万个条目。
  • 如果您预计会有重复请求(这种情况很可能发生),您可以将最后 n 个请求的电话号码缓存在一个较小的集合中,然后先查询那个。

关于redis - 实现快速有效的方法来搜索非常大的数据集中的项目列表的建议/意见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9398951/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com