MapDB是一个基于(Apache 2.0 licensed)开源的Java嵌入式数据库引擎和集合框架。他支持针对Map,Set,Queues,Bitmaps 的范围查询,数据过期,压缩,堆外存储和流的操作。MapDB可能是Java最快的数据库,性能就像操作java中的集合一样。他也支持一些高级功能如:ACID事务,快照和增量备份等。
2.使用3.测试例子org.mapdb mapdb3.0.7
(1)基于内存的: getMemoryDB 获取到的数据为空
@Test
public void putMemoryDB() {
DB db = DBMaker.memoryDB().make();
ConcurrentMap map = db.hashMap("map").createOrOpen();
String key = "Hello";
String val = "simple";
map.put(key, val);
System.out.println("第1次取值," + map.get(key));
}
@Test
public void getMemoryDB() {
DB db = DBMaker.memoryDB().make();
ConcurrentMap map = db.hashMap("map").createOrOpen();
String key = "Hello";
System.out.println("第1次取值," + map.get(key));
}
result:
putMemoryDB 第1次取值,simple getMemoryDB 第1次取值,null
(2)基于磁盘:
@Test
public void putFileDB() {
DB db = DBMaker.fileDB("d:/opt/file.db").make();
ConcurrentMap map = db.hashMap("map").createOrOpen();
map.put("something", "here");
System.out.println("putFileDB:" + map.get("something"));
db.close();
}
@Test
public void getFileDB() {
DB db = DBMaker.fileDB("d:/opt/file.db").make();
ConcurrentMap map = db.hashMap("map").createOrOpen();
System.out.println("getFileDB:" + map.get("something"));
db.close();
}
result:
putFileDB:here getFileDB:here
(3)基于磁盘和内存:
@Test
public void putMemoryFileDB() {
DB db = DBMaker
.fileDB("d:/opt/file.db")
.fileMmapEnable()
.make();
ConcurrentMap map = db
.hashMap("testMap", Serializer.STRING, Serializer.STRING)
.createOrOpen();
map.put("name", "xiaobai");
db.close();
}
@Test
public void getMemoryFileDB() {
DB db = DBMaker
.fileDB("d:/opt/file.db")
.fileMmapEnable()
.make();
ConcurrentMap map = db
.hashMap("testMap", Serializer.STRING, Serializer.STRING)
.createOrOpen();
System.out.println("getMemoryFileDB:"+map.get("name"));
db.close();
}
4.MapDB文档
MapDB中文文档_bestf2012的博客-CSDN博客_mapdb
MapDB - MapDB
5.MapDB性能测试java 堆内存 map 和MapDB 对比
MapDB使用入门 - 水木桶 - 博客园
MapDb学习笔记_SmileJosiah的博客-程序员宅基地 - 程序员宅基地 (cxyzjd.com)



