mapdb
1.概述
一个内存数据库,以map形式保存数据,可以持久化到磁盘。
2.demo
import org.mapdb.*; DB db = DBMaker.newFileDB(new File("testdb")) .closeOnJvmShutdown() .encryptionEnable("password") .make(); ConcurrentNavigableMapmap = db.getTreeMap("collectionName"); map.put(1, "1"); map.put(2, "2); db.commit(); map.put(3, "three"); // map.keySet() is now [1,2,3] db.rollback(); //revert recent changes db.close();
2.结构
外部接口为map形式,内部将数据序列化,然后以卷的形式保存在内存中,数据的基本类型是经过封装的都是通过内存中位置来读取数据。
每个Engine包含多个卷,事务是通过复制卷的副本等逻辑完成后复制回去来完成的。
卷本身是一个内存块,有内存和文件的重载。
db除了提供map以外还负责管理事务。
db事务的处理其实是engine的事务