存储在Hashtables中

时间:2016-11-01 15:15:07

标签: java storage hashtable

我正在开发一个可能会获得数千条消息(可能是数百万条)的应用程序。我想将这些消息存储在哈希表中以便于查找,因为每条消息都有一个id。这是一个好主意吗?如果没有,那么最好的数据结构或方法是什么。谢谢。

2 个答案:

答案 0 :(得分:1)

  

这是个好主意吗?

在内存数据结构中保存无限数据量是一个坏主意。你最终将耗尽内存,你的应用程序将崩溃。

如果您能够丢弃旧的“消息”,以便您可以对应用程序所需的内存量进行合理限制,那么这可能是一个可行的解决方案。

然而,正如评论指出的那样,其他解决方案(分布式内存缓存,SQL数据库,NoSQL数据库等)可能会更好,具体取决于有多少数据和 访问真正需要多快。

答案 1 :(得分:0)

使用Map(数据将被存储在主内存中)很简单,但应该是最不可取和非现实的选项,因为你需要自己实现/重新构建/重新发明数据到期,聚类等的逻辑。

使用缓存框架(数据将存储在主内存中),只有当您知道数据的大小以及数据需要在缓存中驻留多长时间(即数据可以已过期并已删除),此选项将数据大小限制为JVM堆空间的最大大小。

使用数据库(数据将存储在磁盘空间中),这是保存数百万数据的理想选择,但由于光盘操作与内存操作相比需要更多时间,因此需要付出代价。