项目简介
Litecask是一个高性能、持久化的嵌入式键值存储引擎,基于Bitcask原理设计。适用于需要高效、崩溃友好、大规模存储的应用程序。它提供了高效的插入、查找和删除操作,支持键的索引和生命周期管理。作为单头文件库,无需外部依赖,易于集成到应用程序中。
项目的主要特性和功能
- 高性能:插入操作瓶颈在于磁盘I/O,查找操作受益于可扩展的并发哈希表和内置的内存缓存。
- 崩溃友好:采用日志结构文件系统架构,仅丢失未写入磁盘的数据。
- 大规模存储:仅将键存储在内存中,支持处理比RAM大得多的数据集且性能不下降。
- 易于集成:只需包含头文件,无需外部依赖。
- 备份和恢复:备份一个平面目录即可轻松恢复数据库。
- 键索引:支持基于键部分的索引。
- 生命周期管理:支持条目的生命周期管理。
安装使用步骤
构建环境准备
确保已安装C++17或更高版本的编译器(如GCC或Clang)。
编译
在源码目录下执行以下命令进行编译:
sh
mkdir build
cd build
cmake ..
make -j $(nproc)
使用
在应用程序中包含litecask.h
头文件,并使用Datastore
类来创建、打开、关闭数据库,执行插入、查询、删除等操作。以下是一个简单的示例代码:
```cpp
include "litecask.h"
int main() { litecask::Datastore store; store.open("/tmp/my_temp_db");
// 插入数据
std::vector<uint8_t> value{1, 2, 3, 4, 5, 6, 7, 8};
store.put("my key identifier", value);
// 查询数据
std::vector<uint8_t> retrievedValue;
store.get("my key identifier", retrievedValue);
assert(retrievedValue == value);
store.close();
return 0;
} ```
基准测试
Litecask提供了内置的基准测试工具,用于评估不同硬件配置下的性能表现。通过运行以下命令,可以生成性能图表:
sh
./bin/litecask_test benchmark -ll
../ci/benchmark -n
示例代码和文档
项目仓库中包含了详细的示例代码和文档,展示了如何使用Litecask的各种功能,包括索引、查询、TTL(时间存活期)等,开发者可借此快速上手并集成到自己的项目中。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】