是否存在将内容持久保存到数据库而不是内存的Map实现?

Era*_*dan 7 java caching map out-of-memory mongodb-java

可能重复:
它们是否适合Java Map的磁盘实现?

我有一段代码(我没写过)将数百万个CSV行读取到Map中,然后对其进行处理.

我到了我的RAM用完了

我的选择是

  1. 重写代码,尝试流式传输数据,但是因为某些计算可能需要整个数据集(例如,计算可能需要数据集中的第一行和最后一行)

  2. 编写一个实现java.util.Map但会将数据保存到数据库中的类

  3. 只需重写代码并直接从数据库中插入/选择,但我宁愿先尝试#2

因此,DB支持Map的思想突然对我有意义,所以在开始编写之前,我想问一下这个问题是否有一个众所周知的模式/实现(也许甚至不是Map)

现在,就像我喜欢编写代码一样,我不喜欢重新编写代码,我更喜欢重用开源代码.

我不太关心存储实现,SQL或NoSQL,但它需要允许Map自动持久化,并避免将其完全保留在内存中.

有这样一个已知的库/实现吗?这个问题很熟悉吗?我是以正确的方式攻击它吗?


更新:

根据评论,我将研究这些(较旧的,但几乎重复)的问题:

并且如果他们回答我的问题并且仍然是最新的,则投票结束这个

UPDATE2:

  1. 这不是一个完全重复的,我正在寻找一个数据库支持的持久性,其他问题更广泛(任何基于磁盘的实现)
  2. 重复并不总是坏事,请在投票结束前阅读Jeff Atwood的这篇文章

Ale*_*dov 2

许多键值存储都提供 Map 接口。例如,https://github.com/jankotek/JDBM3

另请参阅以下问题:

键值存储建议

Java基于磁盘的键值存储