BerkeleyDB复制数据项作为仅追加日志



我正在寻找使用BerkeleyDB Java版的一个项目。到目前为止,我只阅读了一些文档(没有编写任何代码),但它看起来像一个很好的匹配。

我想要的功能之一是特定键的仅追加日志。例如

«my key» => «snapshot 1»
         => «snapshot 2»
         => «snapshot 3»

复制数据项文档看起来像,如果我设置了DB_DUP标志,我可以为一个键写许多项(以可配置的顺序),然后用游标检索它们。

这是一个明智的/合适的使用BerkeleyDB?

(我确实有其他原因想要在项目中使用BerkeleyDB,这不是我的主要用例。我知道Redis的所有功能,但在内存中是不合适的)

您当然可以按照您的描述使用Berkeley DB。它比直接的键值存储更具挑战性,因为游标操作有许多额外的标志需要注意。它的好处是它只存储一个密钥的副本!但是,至少在某些版本中,如果进行了排序,就不能存储相同的数据项。只是,你知道,提醒一下。

如果您不关心键的存储空间,您可以考虑在键的末尾使用单调递增的数字。然后,您可以像使用一个简单的键值存储一样使用它,像这样插入您的记录:

«my key.1» => «snapshot 1»
«my key.4» => «snapshot 2»
«my key.9» => «snapshot 3»

您仍然会使用游标将它们带进来,就像您对重复数据项所做的那样。只要在«my key.0»处开始搜索,并在看到«my other key.x»时终止搜索。我敢打赌,你将能够得到一些工作更少的头痛。

相关内容

  • 没有找到相关文章

最新更新