LevelDB高性能键值数据库

高性能存储的利器就是 LevelDB,Google 家出品,轻量又耐造,适合前端搞本地持久化的时候用一把。你要是觉得localStorage不够用,或者搞 Electron/Node 项目需要稳定的磁盘写入,那它就挺香的。LevelDB 用的是LSMT结构,写入快,读取也不卡,哪怕数据量大点也不虚。

键值对的存储方式灵活,你要存对象、文本、二进制都行,只要你能转成字节流。API 用起来也蛮简单,C++原生接口不难,Node、Go、Python 这些语言也有对应封装,前端能搞点小玩意出来。

空间效率也是个亮点,写入的时候自动压缩文件,硬盘吃得少,读取也省时间。你要是用它来做日志存储或者缓存,稳定还高效。甚至一些 NoSQL 数据库,比如 RocksDB、HyperDex,也是在它的基础上扩展的,底子扎实。

Bloom Filter这个东西挺聪明的,判断某个 key 存不存在不用真查磁盘,先靠内存猜一波,省了不少 IO,性能自然上来了。还有snapshot机制,用起来像事务一样,查数据的时候稳得一批,不怕读到脏数据。

SQLite3CoreData比,LevelDB 更像个工具型选手。不搞关系型、不玩 ORM,直接上键值对,简单粗暴。你要是做 iOS App,数据关系复杂,那CoreData更顺手。但要是追求纯粹的性能,LevelDB 是真的顶。

用的时候记得看看 LevelDB 的调优参数,比如write_buffer_sizemax_open_files这些,调好了能省不少事。另外它不自带备份功能哦,你得自己搞个定期snapshot或文件拷贝机制。

如果你做本地数据持久化、缓存、日志系统,或者在构建自己的 NoSQL 引擎,那 LevelDB 是个值得试试的好工具,是对性能和稳定性要求高的场景。

folder
最好用的数据库:level db 预估大小:157个文件
file
build_detect_platform 7KB
file
db_bench.cc 28KB
file
db_test.cc 61KB
file
skiplist_test.cc 10KB
file
version_set.cc 47KB
file
corruption_test.cc 10KB
file
db_impl.cc 45KB
file
c_test.c 11KB
file
db_iter.cc 8KB
file
log_test.cc 14KB
file
repair.cc 13KB
file
c.cc 16KB
file
AUTHORS 293B
file
memenv.cc 9KB
file
db_bench_tree_db.cc 16KB
file
db_bench_sqlite3.cc 22KB
file
table_test.cc 24KB
file
env_posix.cc 15KB
file
crc32c.cc 15KB
file
cache.cc 8KB
zip 文件大小:863.73KB