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

与文无关

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

用法简介

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

org.mapdb

mapdb

VERSION

sonatype-snapshots

https://oss.sonatype.org/content/repositories/snapshots

使用DB db = DBMaker.memoryDB().make();//DB db = DBMaker.fileDB("file.db").make();ConcurrentMap map = db.hashMap("map")

.createOrOpen();    //createOrOpen如果不存在那么就创建,如果已经存在了就直接打开。map.put("something", "here");额外知识

MapDB提供了很多数据分配位置的方案。

类结构

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

HashSet

TreeMap

TreeSet

使用感受

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

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

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

最后

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

java内嵌数据库_Java嵌入式数据库-MapDB相关推荐

  1. java 内嵌调用_Java高级开发必会的50个性能优化的细节(珍藏版)

    在JAVA程序中,性能问题的大部分原因并不在于JAVA语言,而是程序本身.养成良好的编码习惯非常重要,能够显著地提升程序性能. ● 1. 尽量在合适的场合使用单例 使用单例可以减轻加载的负担,缩短加载 ...

  2. java做一个简单的数据库,哪个嵌入式数据库用Java写成一个简单的键/值存储?

    我最近问了一个关于Neo4j的问题,我有工作,似乎很好.它是可嵌入的,它是用Java编写的,没有(太)许多依赖. 然而,它是一个图形数据库,我不知道这是一个好主意或不使用它作为一个简单的键/值存储. ...

  3. java 枚举内嵌枚举_Java枚举益智游戏

    java 枚举内嵌枚举 假设我们有以下代码: enum Case {CASE_ONE,CASE_TWO,CASE_THREE;private static final int counter;priv ...

  4. java内嵌_Java内嵌类

    1.1. 内嵌类 1.1.1. 代码 /* * To change this template, choose Tools | Templates * and open the template in ...

  5. mongodb java 内嵌文档_MongoDB 内嵌文档

    MongoDB是文档型的数据库系统,doc是MongoDB的数据单位,每个doc相当于关系型数据库的数据行(row),doc和row的区别在于field的原子性:row中的column是不和分割的原子 ...

  6. java 内嵌机制_[转] Java中public,private,final,static等概念的解读

    作为刚入门Java的小白,对于public,private,final,static等概念总是搞不清楚,到底都代表着什么,这里做一个简单的梳理,和大家分享,若有错误请指正,谢谢~ 访问权限修饰符 pu ...

  7. swt java 内嵌ActiveX控件

    这里用的是SWT/JFace开发application中SWT自带的org.eclipse.swt.ole.win32 包可以支持内嵌OLE和ActiveX. 具体用法如下: //创建一个OleFra ...

  8. java内联函数_Java之内联函数_内联函数的优缺点

    描述 内联函数 1.内联函数就是指函数在被调用的地方直接展开,编译器在调用时不用像一般函数那样,参数压栈,返回时参数出栈以及资源释放等,这样提高了程序执行速度. 2.Java语言中有一个关键字fina ...

  9. java derby,Java内嵌数据库Derby环境配置

    在JDK环境配置好的情况下,进行如下操作: 1.先下载最新版Derby数据库 下载地址:http://db.apache.org/derby/ 本人下载的是:db-derby-10.3.1.4-bin ...

最新文章

  1. 省内读大学与省外读大学的区别?看完扎心了…
  2. 跨域请求设置withCredentials
  3. linux fedora35安装deepin-wine:deepin-wine-on-fedora项目
  4. python 错误AttributeError: ‘dict_keys‘ object has no attribute ‘sort‘
  5. eclipse java字体 太小,如何在Eclipse for Java文本编辑器中更改字体大小?
  6. java outputstrea_java的InputStream和OutputStream的理解【转】
  7. C-Free 5.0注册码分享
  8. Codeproject收藏
  9. numpy随机抽样及各种分布函数详解
  10. 西安省某小学能耗监测及电力监控系统的研究与应用
  11. 六相PMSM电驱平台及电机相序、参数测试流程
  12. Linux arm 下载程序,在Linux下使用kermit和dnw给ARM板下载程序
  13. 【Python】自动化办公之Excel拆分并自动发邮件
  14. Vue Props的用法
  15. Google Play 上架总结(二)Google账户关联详解
  16. 2021年中国在线教育行业投融资现状及未来发展趋势分析[图]
  17. 打造金融新生态、做一只落地利民的金融独角兽——犹太链(JEC)
  18. SSH2(后台管理页面+Vue+Element-UI+动态树+分页+正则表达)
  19. 【交换机】汇聚交换机和核心交换机的区别
  20. 程序员必知道的八大排序

热门文章

  1. RegExp(正则)
  2. 如何在HTML做个按钮
  3. FinClip Hackathon 那些令人拍案叫绝的项目
  4. UA OPTI570 量子力学28 原子结构的量子力学基础
  5. 软量子计算机机 铷,陈根:迄今最多量子比特的机器,让量子计算进入全新领域...
  6. 中国书法的价值和意义
  7. 光敏二极管为什么反接
  8. ajax是什么?咋实现的
  9. AJAX的全称是什么? 介绍一下AJAX
  10. 珠海:IT应用向政府投资行业集中