20个版本
0.4.1 | 2022年5月12日 |
---|---|
0.3.15 | 2022年5月9日 |
0.3.14 | 2022年1月18日 |
0.3.13 | 2021年12月8日 |
0.3.10 | 2021年7月8日 |
#2309 在 数据库接口
在 2 个crates中使用
16KB
269 行
BoringDB
一个基于SQLite、单进程的键值数据库。
如果你想要使用boringdb,那么
- 你想要高性能,接近sled和RocksDB数据库的性能
- 你不需要SQL、多进程支持或SQLite的其他酷炫功能
- 你想要SQLite的可靠性
工作方法
BoringDB将键值对存储到字节数组中(Vec<u8>
)。
示例
我们这里有各种使用示例 这里.
要运行任何示例,请执行
cargo run --example example_name_goes_here
缓存架构
我们有一个支持以下操作的写回缓存
- 带有批号插入
- 带有回退闭包读取键
- 以迭代器对象的形式移除脏键,返回批。
lib.rs
:
BoringDB
一个基于SQLite、单进程的键值数据库。
如果你想要使用boringdb,那么
- 你想要高性能,接近sled和RocksDB数据库的性能
- 你不需要SQL、多进程支持或SQLite的其他酷炫功能
- 你想要SQLite的可靠性
关于持久性的说明
默认情况下,boringdb具有最终一致性:即使面对任意的崩溃,数据库状态也能保证一致,事务保证具有“可序列化”的语义。然而,在崩溃后,数据库可能略微过时,通常只有一秒钟的差距。
为了避免这种行为,请使用Dict::flush方法手动强制与磁盘同步。请注意,这会带来相当严重的性能成本。
工作方法
BoringDB将键值对存储到字节数组中(Vec<u8>
)。
示例
示例可以在示例目录中找到
依赖项
~24MB
~459K SLoC