我正在考虑将BerkeleyDB Java版用于项目。我到目前为止只阅读了一些文档(没有编写任何代码),但它看起来很不错。
我想要的一个功能是特定键的仅附加日志。例如
«my key» => «snapshot 1»
=> «snapshot 2»
=> «snapshot 3»
Duplicate Data items文档看起来如果我设置DB_DUP
标志我可以为一个键写一些项目(以可配置的顺序),然后用光标检索它们。
这对BerkeleyDB来说是否合理/合适?
(我确实有其他理由希望在项目中使用BerkeleyDB,这不是我的主要用例。我知道Redis中的所有功能但是内存不合适)
答案 0 :(得分:0)
您当然可以使用Berkeley DB描述。它比直接的键值存储更具挑战性,因为游标操作还有许多额外的标志需要注意。它的好处是它只存储一个密钥副本!但是,至少在某些版本中,如果对它们进行排序,则无法存储相同的数据项。只是,你知道,警告。
如果您不关心密钥的存储空间,可以考虑在密钥末尾使用单调递增的数字。然后,您可以像使用简单的键值存储一样使用它,插入如下记录:
«my key.1» => «snapshot 1»
«my key.4» => «snapshot 2»
«my key.9» => «snapshot 3»
您仍然会使用光标将它们带入,就像您对重复数据项一样。只需在«my key.0»
开始搜索,然后在看到«my other key.x»
时将其终止。我敢打赌,你可以通过减少头部磨损来获得一些工作。