# mapdb
**Repository Path**: mirrors/mapdb
## Basic Information
- **Project Name**: mapdb
- **Description**: MapDB是一个快速、易用的嵌入式Java数据库引擎,它提供了基于磁盘或者堆外(off-heap允许Java直接操作内存空间, 类似于C的malloc和free)存储的并发的Map
- **Primary Language**: Java
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 24
- **Forks**: 0
- **Created**: 2017-07-17
- **Last Updated**: 2024-03-02
## Categories & Tags
**Categories**: database-service
**Tags**: None
## README
MapDB: database engine
=======================
[](https://travis-ci.org/jankotek/mapdb)
[](https://search.maven.org/#search%7Cga%7C1%7Cg%3A%22org.mapdb%22%20AND%20a%3Amapdb)
[](https://gitter.im/jankotek/mapdb?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
MapDB combines embedded database engine and Java collections.
It is free under Apache 2 license. MapDB is flexible and can be used in many roles:
* Drop-in replacement for Maps, Lists, Queues and other collections.
* Off-heap collections not affected by Garbage Collector
* Multilevel cache with expiration and disk overflow.
* RDBMs replacement with transactions, MVCC, incremental backups etc…
* Local data processing and filtering. MapDB has utilities to process huge quantities of data in reasonable time.
Hello world
-------------------
Maven snippet, VERSION is [](https://search.maven.org/#search%7Cga%7C1%7Cg%3A%22org.mapdb%22%20AND%20a%3Amapdb)
```xml
org.mapdb
mapdb
VERSION
```
Hello world:
```java
//import org.mapdb.*
DB db = DBMaker.memoryDB().make();
ConcurrentMap map = db.hashMap("map").make();
map.put("something", "here");
```
You can continue with [quick start](https://jankotek.gitbooks.io/mapdb/content/quick-start/) or refer to the [documentation](https://jankotek.gitbooks.io/mapdb/).
Support
------------
More [details](http://www.mapdb.org/support/).
Development
--------------------
MapDB is written in Kotlin, you will need IntelliJ Idea.
You can use Gradle to build MapDB.
MapDB is extensively unit-tested.
By default, only tiny fraction of all tests are executed, so build finishes under 10 minutes.
Full test suite has over million test cases and runs for several hours/days.
To run full test suite, set `-Dmdbtest=1` VM option.
Longer unit tests might require more memory. Use this to increase heap memory assigned to unit tests: `-DtestArgLine="-Xmx3G"`
By default unit tests are executed in 3 threads. Thread count is controlled by `-DtestThreadCount=3` property
On machine with limited memory you can change fork mode so unit test consume less RAM, but run longer: `-DtestReuseForks=false`