首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使数百万个小型二进制文件可持续地用于测试的最佳解决方案是什么?

使数百万个小型二进制文件可持续地用于测试的最佳解决方案是什么?
EN

Stack Overflow用户
提问于 2020-07-22 16:44:30
回答 1查看 32关注 0票数 0

我们正在为验证系统开发生物特征匹配解决方案。正如您可能知道的,生物特征数据的一个主要问题是它们是非结构化的二进制文件,每个生物特征细节都必须与整个细节数据库匹配。

因此,我们正在寻找一种快速和适当的解决方案,以消除物理硬盘上的二进制检索(I/O)延迟,并通过使所有二进制记录都可用于新的匹配请求来减少开销。

目前,我们的解决方案是使用内存中的数据库,比如带有缓存机制的Redis。这个解决方案的问题是,如果生物特征二进制位的数量如此之多,内存(RAM)的大小就会变得非常大。我们正在寻找一种解决方案,使所有二进制文件都可以用于我们的匹配应用程序。

请注意,通常每一个生物特征细节都小于5KB,我们有数百万的生物特征细节记录。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-07-23 13:18:41

您可以使用内存中的数据库和基于磁盘的DB组合来存储数百万的细节.

您可以将所有细节存储在任何基于磁盘的DB中,如MySQL、PostgreSQL或任何其他。

细节数据将分布在三个不同的数据存储区。

本地cache)

  • In-Memory DB (Memcache,Redis,etc)

  • Disk-based DB (MySQL,MongoDB等)

)

假设在您的设置中使用了Redis和MySQL。

您的代码应该首先搜索应用程序缓存中的细节,如果找不到它,则应该在Redis中搜索,以查看它是否可用,如果您在那里找到了,那么获取它,并将其存储在本地缓存中,其中包含过期

即使Redis中没有可用的数据,您也应该在MySQL数据库中搜索并带回它。如果您发现了,那么您应该将相同的数据存储在带到期的Redis 中。

使用期满时,您可以避免同时将所有对象存储在内存中。

假设现在你不想使用到期,因为你总是需要所有的细节。在这种情况下,可以增加Redis实例的大小,也可以使用Redis集群。作为替代,IMDG (内存中的数据网格)(如Hazelcast、Apache等)可用于存储所有细节。如果您不喜欢使用这样复杂的设置,那么您应该考虑使用内存中的数据库,如Sap、MemSQL等。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63039204

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档