首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用于存储键-值对的轻量级数据库样式库

用于存储键-值对的轻量级数据库样式库
EN

Stack Overflow用户
提问于 2011-10-08 00:24:51
回答 4查看 1.6K关注 0票数 1

在Java中,在文件中存储字符串的键值对的最佳方式是什么,它是可伸缩的(可以处理大量的键值对,即在访问时不读取或写入整个文件),但又尽可能轻量级?

我之所以这样问,是因为即使是最轻量级的数据库库,如SQLite和H2,对于这个目的来说也显得有些矫饰,甚至不可能用于ME程序(尽管目前我主要需要将其用于SE程序)。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-10-08 01:19:37

Oracle BerkeleyDB java edition允许您存储键值对象,它易于使用和管理,并且可扩展到天堂(或更高)。在820k时并不是很大。

但是,如果您正在考虑缩减到j2me,您可以尝试TinySQL

优点:

  • It is small (93k!)
  • It is embeddable
  • It is small(93k!)
    • 它使用DBF或文本文件文件来存储数据,因此很容易阅读。

缺点:

  • It是一个老的未维护的项目,
  • 它不是为在j2me中工作而设计的,但是因为它可以在JDK1.1.8中工作,所以让它在j2me中工作并不难。
  • 它的速度不是很快,因为它不使用索引,所以您需要尝试看看它是否适合您的需要
  • 它的功能并不完整,只是给了您SQL

的一小部分。

票数 0
EN

Stack Overflow用户

发布于 2011-10-08 00:41:57

对于一组静态的键-值对,我们会想到Dan Bernstein的cdb。引用cdb的描述:

云数据库是一个快速、可靠、简单的创建和读取常量数据库的软件包。它的数据库结构提供了几个功能:

  • 快速查找:在大型数据库中成功查找通常只需要两次磁盘访问。一次查找失败只需要一次。
  • 低开销:数据库使用2048字节,加上每条记录24字节,再加上键和数据的空间。
  • 没有随机限制:云数据库可以处理任何数据库,最大4G。没有其他限制;记录甚至不需要放入内存。数据库以与机器无关的格式存储。
  • 快速原子数据库替换: cdbmake重写整个数据库的速度比其他散列packages.
  • Fast数据库转储快两个数量级: cdbdump以与cdbmake兼容的格式打印数据库内容。

cdb设计用于电子邮件等任务关键型应用程序。数据库替换对于系统崩溃是安全的。在重写过程中,读者不必停顿。

看起来在http://www.strangegizmo.com/products/sg-cdb/上有一个带BSD许可证的Java实现。

票数 0
EN

Stack Overflow用户

发布于 2011-10-08 00:43:46

显而易见,最初的想法是使用属性,因为这些都是流式的,但它们最终是完全加载的。你也不能部分地读取缓冲的集合。

考虑到这一点,你可以看到这个额外的SO响应。这指的是在流中导航(尽管不完美),以便您可以重新定位您的读取内容:

changing the index positioning in InputStream

使用单独的索引(例如按初始字符),您可以智能地重新定位流中的光标。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7690118

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档