Berkeley DB 可能是最好的选择,但由于许可问题,我无法使用它。
有没有其他选择?
You can try Hazelcast. Just add hazelcast.jar to your classpath. And start coding
java.util.Map map = Hazelcast.getMap("myMap");
You'll get an in-memory, distributed, dynamically scalable data grid which performs super fast.
哈希表?
Chronicle-Map是一个强有力的选择。
java.util.Map
实现考虑使用jredis。它是 Redis 的 Java 客户端,一种持久的键值对存储。它还有一个 JDBC 驱动程序:code.google.com/p/jdbc-redis/。
jdbm非常适合这种事情。它旨在以分页文件的形式存储在磁盘上,提供基本的事务支持(不保证隔离,但涵盖了 ACD)。我们已经在具有相当广泛部署的生产系统中使用它,并且对性能、稳定性等非常满意......
我知道这是一个两年前的帖子,但我最近一直在玩 Infinispan,到目前为止我很喜欢它。无论如何我都不是专家,但对我来说用几个节点设置分布式缓存并不难,我在大约一个小时内就从它们中提取了一些数据。
有轻量级或嵌入式数据库,如 HSQLDB、Derby、SQLite 但像其他人一样不明白为什么需要一个数据库来存储键/值......
为什么不是地图?需要在应用重启时保留键/值?
此外,它可能不是您需要的,但在最新的浏览器上使用 html5,您有 localStorage 允许您使用 javascript 在浏览器中存储键/值。