哪种持久化方法?

时间:2014-05-17 22:49:31

标签: java persistence

我正在构建一个从网站下载一组图像的应用程序,从中提取一些功能,然后允许用户将她提交的图像与下载的图像进行比较,以查看哪一个最接近。目前,应用程序下载图像并从中提取特征。然后将图像和特征包装在一个对象中并存储在一个地图中,其中键作为图像的名称,值作为上述包装对象。 因为它存储在内存中,所以每次启动应用程序时都必须经历相当昂贵的下载和特征提取过程。如果它可以从磁盘加载这些信息会快得多,但我不确定最好的方法 - 我已经考虑过这些选项:

  • RDMS:类似Postgres或SQLite
  • NoSQL:类似的东西 Voldemort或Reddis
  • 序列化:使用内置的java方法编写 对象到文件(也可以与DB一起使用) 虽然...)

我希望它真的很轻;我希望保持应用程序尽可能小,并将配置保持在最低限度。出于这个原因,序列化似乎是要走的路,但我想对此提出第二个(或更多)意见,因为以某种方式做这件事只是感觉不对。我无法理解为什么我觉得那样...... 我还应该说用户可以在应用程序运行时向图像添加图像,我也想保存这些图像。

1 个答案:

答案 0 :(得分:0)

我不推荐序列化 - 只是有太多陷阱。

如果您拥有的只是一张地图,那么我认为任何键值存储(如redis)都是合适的。

如果你有更复杂的数据,那么你可能想要考虑一个数据库(无论是SQL还是没有sql)。