正在寻找与java兼容的轻量级内存键值存储
伯克利DB可能是最好的选择,但由于许可问题,我不能使用它正在寻找与java兼容的轻量级内存键值存储,java,nosql,berkeley-db,key-value-store,Java,Nosql,Berkeley Db,Key Value Store,伯克利DB可能是最好的选择,但由于许可问题,我不能使用它 还有其他选择吗 你的问题可能意味着两件事之一 如果您指的是用于存储键值对的数据结构,请使用JDK标准部分的实例之一 但是,如果您想要内存中的键值存储,那么我建议您查看甚至。?有轻量级或嵌入式数据库,如HSQLDB、Derby、SQLite 但像其他人一样,他们不明白为什么需要db来存储键/值 为什么不是地图? 需要在应用程序重新启动时保留密钥/值吗 此外,这可能不是您所需要的,但随着html5在最新浏览器上的应用,您拥有本地存储,允许您使
还有其他选择吗 你的问题可能意味着两件事之一 如果您指的是用于存储键值对的数据结构,请使用JDK标准部分的实例之一
但是,如果您想要内存中的键值存储,那么我建议您查看甚至。?有轻量级或嵌入式数据库,如HSQLDB、Derby、SQLite 但像其他人一样,他们不明白为什么需要db来存储键/值 为什么不是地图? 需要在应用程序重新启动时保留密钥/值吗 此外,这可能不是您所需要的,但随着html5在最新浏览器上的应用,您拥有本地存储,允许您使用javascript在浏览器中存储键/值。非常适合这种情况。它旨在以分页文件的形式存储在磁盘上,提供基本事务支持(不保证隔离,但包含ACD)。我们已经在一个部署相当广泛的生产系统中使用了它,并对其性能、稳定性等非常满意。考虑使用它。它是Redis的Java客户端,一个持久的键值存储。还有一个JDBC驱动程序:code.google.com/p/JDBC redis/您可以试试。只需将hazelcast.jar添加到类路径中。然后开始编码
java.util.Map map = Hazelcast.getMap("myMap");
你会得到一个内存中的、分布式的、动态可扩展的数据网格,它执行得非常快。我知道这是一篇两年前的文章,但我最近一直在胡闹,到目前为止我很喜欢它。无论如何,我都不是专家,但对我来说,用几个节点建立分布式缓存并不太困难,我在大约一个小时内就从这些节点中提取了一些数据。是伯克利的另一种选择,它有一个友好的Apache2许可证
- 通过java的映射接口提供键值存储
- 轻量级(300KB jar)
- 快速和线程安全
- 如果需要,将更改保存到磁盘
- 许多其他
Map
或ConcurrentMap
和其他(设置、列表、队列、锁定…)实现
简单的例子:
Redisson redisson = Redisson.create();
ConcurrentMap<String, SomeObject> map = redisson.getMap("anyMap");
...
redisson.shutdown();
Redisson Redisson=Redisson.create();
ConcurrentMap=redisson.getMap(“anyMap”);
...
redisson.shutdown();
是一个很好的选择
- 纯Java,只需
实现Java.util.Map
- 存储堆外数据,可以选择通过内存映射文件持久化到磁盘
- 开源、许可的Apache 2.0许可证
- 速度惊人,每秒可管理数百万次更新/查询()