大家好,很高兴又见面了,我是"高级前端进阶",由我带着大家一起关注前端前沿、深入前端底层技术,大家一起进步,也欢迎大家关注、点赞、收藏、转发,您的支持是我不断创作的动力。
什么是 redbredb is a simple, portable, high-performance, ACID, embedded key-value store.
redb 是一个简单、可移植、高性能、ACID、嵌入式键值存储, redb 是用纯 Rust 编写的,受到 lmdb 的很多启发,数据存储在写时复制 B 树的集合中。
redb 具有以下特征:
值得注意的是,redb 目前正在积极开发中,还处于 beta 阶段 ,文件格式稳定,但 redb 尚未在生产环境中广泛部署。
redb 与其他顶级嵌入式键值存储数据库,例如: lmdb 和 Rocksdb 等都具有相当的性能。
如何使用 redbRocksdb:facebook 开发的一个提供可嵌入、持久键值存储以实现快速存储的库,通过 C 编写,有 27.2k 的 star
目前 redb 在 Github 通过 Apache-2.0 协议开源,有超过 2.8k 的 star、是一个值得关注的开源项目。
redb 使用起来非常简单,比如下面的例子:
use redb::{Database, Error, ReadableTable, TableDefinition};
// 导入相应模块
const TABLE: TableDefinition<&str, u64> = TableDefinition::new("my_data");
fn main() -> Result<(), Error> {
let db = Database::create("my_db.redb")?;
// 创建一个 DB
let write_txn = db.begin_write()?;
{
let mut table = write_txn.open_table(TABLE)?;
table.insert("my_key", &123)?;
}
// 插入数据
write_txn.commit()?;
// 提交内容
let read_txn = db.begin_read()?;
let table = read_txn.open_table(TABLE)?;
assert_eq!(table.get("my_key")?.unwrap().value(), 123);
// 开始读数据
Ok(())
}
参考资料
https://github.com/cberner/redb
https://github.com/cberner/redb/blob/master/docs/design.md
https://github.com/facebook/rocksdb
https://docs.rs/redb/latest/redb/index.html
https://morioh.com/a/c381b8c5497f/high-performance-and-reliable-oracle-database-access-for-rust
https://dbdb.io/db/redb
https://aws.amazon.com/cn/nosql/key-value/
Copyright © 2024 妖气游戏网 www.17u1u.com All Rights Reserved