LMDB

属性说明
功能内存映射键值存储(B+ 树)
许可证OpenLDAP Public License
仓库https://github.com/LMDB/lmdb

核心特点

特性说明
存储模型有序键值对,底层为内存映射的 B+ 树
事务完全 ACID,MVCC(多版本并发控制)
读性能极快——无需锁,直接共享内存读取
写性能一次最多一个写事务

核心 API

MDB_env *env;
mdb_env_create(&env);
mdb_env_open(env, "./lmdb_data", 0, 0664);
 
MDB_txn *txn;
mdb_txn_begin(env, NULL, 0, &txn);
MDB_dbi dbi;
mdb_dbi_open(txn, NULL, 0, &dbi);
 
MDB_val key = {4, "user"}, data = {5, "Alice"};
mdb_put(txn, dbi, &key, &data, 0);
mdb_txn_commit(txn);
 
mdb_env_close(env);

LMDB 的读操作无需任何内存分配或内存拷贝——直接返回映射到数据页的指针。是 OpenLDAP 的后端存储,广泛用于嵌入式高性能场景。

跨语言参考: C标准库深度剖析