Java嵌入式数据库-MapDB

MapDB可以直接将Java的数据类型存储至直接内存而非JVM的堆中,也可以将数据持久化到磁盘。


img_bf2a7a4bf7b4952780d65af2a5831d5e.png
与文无关

今天和大家介绍一个Java的第三方库,MapDB,它是用Kotlin写的,据说代码质量还不错,有兴趣的可以阅读其源码。

MapDB是一个内嵌的纯Java的数据库,提供了并发的HashMap、TreeMap、Queue,可以基于堆外或者磁盘来存储数据。用户可以通过配置选择不同的机制来提高性能,比如可以配置多种不同的cache来减少反序列化的开销,提高读取性能;可以开启异步写引擎,使用后台线程来进行序列化和存储更新,来提高插入性能,减少rt。它支持ACID事务、MVCC隔离。它的代码精简,只有一个jar包,无其他依赖,总共才200kb。并且高度模块化,用户可以很容易的扩展,添加新特性。

用法简介

MapDB的用法非常简单,看接下来的步骤直接就可以用了。

  1. 添加Maven依赖
<dependency>
    <groupId>org.mapdb</groupId>
    <artifactId>mapdb</artifactId>
    <version>VERSION</version>
</dependency>
<repositories>
    <repository>
        <id>sonatype-snapshots</id>
        <url>https://oss.sonatype.org/content/repositories/snapshots</url>
    </repository>
</repositories>
  1. 使用
DB db = DBMaker.memoryDB().make();
//DB db = DBMaker.fileDB("file.db").make();
ConcurrentMap map = db.hashMap("map")
    .createOrOpen();    //createOrOpen如果不存在那么就创建,如果已经存在了就直接打开。
map.put("something", "here");
  1. 额外知识
    MapDB提供了很多数据分配位置的方案。


    img_ad4bdcf67033913036992e4195e30e41.png
    类结构

DB也提供了很多集合的存储类型:

  • HashMap
  • HashSet
  • TreeMap
  • TreeSet

等,感兴趣的可以直接查阅文档
MapDB文档地址:https://jankotek.gitbooks.io/mapdb/content/db/

使用感受

如果在Java开发的时候想持久化一些类型,又不想依赖第三方软件,比如Redis,那么就选用MapDB,上手也简单,用起来也方便。

MapDB默认不允许多个进程同时访问一个文件,这种情况限制了其在分布式或集群的场景。只能用单机来存储一些简单的东西。

MapDB既然是嵌入式数据库,那么其使用场景还是业务比较简单的时候。如果确保业务不会复杂,可以使用它。

最后

最近在使用MapDB,拿出来和大家分享下。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值