嵌入内存的NoSQL键值数据库MapDB,Java
Posted zhangphil
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了嵌入内存的NoSQL键值数据库MapDB,Java相关的知识,希望对你有一定的参考价值。
嵌入内存的NoSQL键值数据库MapDB,Java
MapDB开源地址:
MapDB在maven的地址:
https://mvnrepository.com/artifact/org.mapdb/mapdbhttps://mvnrepository.com/artifact/org.mapdb/mapdb
MapDB用途多元化,MapDB提供拆箱即用的NoSQL键值数据存储模式。MapDB可以简单的基于内存、只在内存中内建数据库存储键值数据,当JVM关闭后所有数据自动消失。也可以将内存中的数据flush到本地一个文件中。总结起来,MapDB和一些常规的嵌入内存的NoSQL数据库相比,多出一个特点:不仅可以嵌入内存的数据存取,也能将内存数据flush到本地文件持久化。
下面一个例子,说明MapDB基于数据库文件存取内存数据.
pom.xml里面添加依赖:
<dependency>
<groupId>org.mapdb</groupId>
<artifactId>mapdb</artifactId>
<version>3.0.8</version>
</dependency>
Java代码:
import org.mapdb.DB;
import org.mapdb.DBMaker;
import org.mapdb.HTreeMap;
import org.mapdb.Serializer;
import java.util.concurrent.TimeUnit;
public class MainClass
final String KEY = "name";
final String MAP = "map";
public MainClass()
write();
read();
private void write()
DB db = DBMaker
.fileDB("./myfile.db")
.make();
HTreeMap<String, String> map = db.hashMap(MAP)
.keySerializer(Serializer.STRING)
.valueSerializer(Serializer.STRING)
.expireAfterCreate(30, TimeUnit.SECONDS)
.createOrOpen();
map.put(KEY, "zhangphil");
System.out.println("write ok");
System.out.println("-----");
db.commit();
db.close();
private void read()
DB db = DBMaker
.fileDB("./myfile.db")
.make();
HTreeMap<String, String> map = db.hashMap(MAP)
.keySerializer(Serializer.STRING)
.valueSerializer(Serializer.STRING)
.expireAfterCreate(30, TimeUnit.SECONDS)
.createOrOpen();
System.out.println(map.isEmpty());
System.out.println(map.get(KEY));
db.close();
public static void main(String[] atgs)
new MainClass();
代码运行后,在工程项目下生成一个数据库文件myfile.db:
输出:
write ok
-----
false
zhangphil
以上是关于嵌入内存的NoSQL键值数据库MapDB,Java的主要内容,如果未能解决你的问题,请参考以下文章