Repolode
google

google/leveldb

Google 开发的嵌入式键值存储库,按键有序保存字符串数据。

Star
39,503
Fork
8,230
未关闭 Issue
425
最近提交
13天前

这是什么?

LevelDB 是 Google 用 C++ 编写的嵌入式键值存储库。它把任意字节串形式的键映射到字节串值,并按键排序保存,因此应用可以对键范围做正向或反向迭代。它是链接进进程使用的库,而不是独立服务器,同一时间只能由一个进程(可以是多线程)打开某个数据库。

接口以 Put、Get、Delete 为核心,并提供原子写入批次和临时快照,用于获取一致的读取视图。数据默认使用 Snappy 压缩,也支持 Zstd。文件系统等操作系统交互通过可替换的虚拟接口完成。

LevelDB 不是 SQL 数据库,没有索引、关系模型,也不内置客户端-服务器通信。项目目前处于有限维护状态,主要接受关键缺陷修复和兼容性修改。它支持通过 CMake 在 POSIX 系统和 Windows 上构建。

核心功能

  • 01键和值都是任意字节数组,并按键有序存储。
  • 02支持自定义比较函数以修改排序规则。
  • 03提供原子写入批次和临时快照。
  • 04支持对数据进行正向和反向迭代。
  • 05默认使用 Snappy 压缩,并支持 Zstd。
  • 06可通过虚拟接口替换文件系统等操作系统交互逻辑。

适用场景

  • 在 C++ 应用中嵌入快速的本地键值缓存或索引。
  • 存储需要按键范围扫描的有序数据。
  • 基于嵌入式存储构建自定义存储引擎或服务。

快速上手

  1. 1

    克隆仓库及其子模块

    git clone --recurse-submodules https://github.com/google/leveldb.git
  2. 2

    创建构建目录并使用 CMake 配置

    mkdir -p build && cd build cmake -DCMAKE_BUILD_TYPE=Release ..
  3. 3

    构建库文件

    cmake --build .

使用前须知

  • 同一时间只有一个进程(可以是多线程)能访问某个数据库。
  • 这不是 SQL 数据库,没有关系模型、索引,也没有内置的客户端-服务器支持。
  • 该仓库维护非常有限,仅审核关键错误修复和兼容性破坏修复。

标签

常见问题

leveldb 是什么?
Google 开发的嵌入式键值存储库,按键有序保存字符串数据。 LevelDB 是 Google 用 C++ 编写的嵌入式键值存储库。它把任意字节串形式的键映射到字节串值,并按键排序保存,因此应用可以对键范围做正向或反向迭代。它是链接进进程使用的库,而不是独立服务器,同一时间只能由一个进程(可以是多线程)打开某个数据库。
leveldb 可以免费使用吗?用的什么许可证?
leveldb 以 BSD-3-Clause 许可证开源。用于商业产品前,请先确认许可证条款。
leveldb 还在维护吗?
活跃维护中。leveldb 最近一次提交是在 2026年10月8日。
leveldb 适合用来做什么?
在 C++ 应用中嵌入快速的本地键值缓存或索引。 存储需要按键范围扫描的有序数据。 基于嵌入式存储构建自定义存储引擎或服务。
leveldb 怎么安装和运行?
克隆仓库及其子模块: git clone --recurse-submodules https://github.com/google/leveldb.git 创建构建目录并使用 CMake 配置: mkdir -p build && cd build cmake -DCMAKE_BUILD_TYPE=Release .. 构建库文件: cmake --build .
在哪里获取 leveldb?
源代码和安装说明在 GitHub 上:https://github.com/google/leveldb

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目