syn*_*nic 33 java data-persistence
Java是否有(或者是否有可用的库)允许我拥有基于磁盘的HashMap?它不需要是原子或任何东西,但它将通过多个线程访问,如果两个同时访问同一个元素,则不应该崩溃.
谁知道什么?
小智 31
创建mapdb
MapDB提供由磁盘存储或堆外内存支持的并发TreeMap和HashMap.它是一个快速,可扩展且易于使用的嵌入式Java数据库引擎.它具有诸如事务,节省空间的序列化,实例缓存和透明压缩/加密等功能.它还具有与本机嵌入式数据库引擎相媲美的出色性能.
jdbm2
嵌入式键值Java数据库.
https://code.google.com/p/jdbm2/
Bal*_*usC 11
无论是属性文件或Berkeley DB的可能是你在找什么.它java.util.Properties本身实现java.util.Map并提供load从store文件到文件的方法.Berkeley DB通常被推荐为轻量级键值对数据存储区.
在2018最轻的持久性key value存储是H2数据库与它的MVStore:
MVStore 是一个持久的、日志结构的键值存储。它计划成为 H2 的下一个存储子系统,但它也可以直接在应用程序中使用,无需使用 JDBC 或 SQL。
MVStore 代表“多版本商店”。
每个商店都包含许多可以使用 java.util.Map 接口访问的地图。
支持基于文件的持久性和内存中操作。
它旨在快速、易于使用且体积小。
支持并发读写操作。
支持事务(包括并发事务和两阶段提交)。
该工具非常模块化。它支持可插拔数据类型和序列化、可插拔存储(到文件、到堆外内存)、可插拔映射实现(当前 B 树、R 树、并发 B 树)、BLOB 存储和文件系统抽象到支持加密文件和zip文件。
h2-mvstore没有依赖项,版本 1.4.200 是一个0.3 Mb 的jar
我还看了:
13 meg依赖项)5.5 meg依赖项 - 快速可选地分发) 2 megjava 依赖项 + lmdbC 库)- 最快的实现,但不是thread safe开箱即用的。Chronicle MapConcurrentMap通过将其内存映射到文件来实现并将数据持久化到磁盘。
Chronicle Map 在概念上与 MapDB 非常相似(提供类似的构建器 API 和Map接口),但 Chronicle Map比 MapDB快几倍,并且具有更好的并发性(Chronicle Map 使用高度条带化的多级自旋锁)。
| 归档时间: |
|
| 查看次数: |
25406 次 |
| 最近记录: |