redb - 嵌入式数据库
简单、便携、高性能、ACID、嵌入式键值存储。
redb 是用纯 Rust 编写的,并受到 lmdb 的启发。
- 零拷贝、线程安全、基于 APIBTreeMap
- 完全符合 ACID 的事务
- MVCC 支持并发读写器,无阻塞
- 默认情况下是安全的
在许多基准测试中,redb几乎与lmdb一样快,并且比sled更快
+--------------------+--------------+------------+--------+---------+
| | redb (1PC+C) | redb (2PC) | lmdb | sled |
+===================================================================+
| bulk load | 1770ms | 1370ms | 976ms | 4534ms |
|--------------------+--------------+------------+--------+---------|
| individual writes | 227ms | 381ms | 388ms | 642ms |
|--------------------+--------------+------------+--------+---------|
| batch writes | 2346ms | 2533ms | 2136ms | 1395ms |
|--------------------+--------------+------------+--------+---------|
| large writes | 8805ms | 6532ms | 7793ms | 37736ms |
|--------------------+--------------+------------+--------+---------|
| random reads | 734ms | 734ms | 642ms | 1514ms |
|--------------------+--------------+------------+--------+---------|
| random range reads | 832ms | 834ms | 712ms | 1826ms |
|--------------------+--------------+------------+--------+---------|
| removals | 1281ms | 1149ms | 676ms | 1792ms |
+--------------------+--------------+------------+--------+---------+
例子:
use redb::{Database, Error, ReadableTable, TableDefinition};
const TABLE: TableDefinition<str, u64> = TableDefinition::new("my_data");
fn main() -> Result<(), Error> {
let db = unsafe { Database::create("my_db.redb", 1024 * 1024)? };
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(), 123);
Ok(())
}
ReadMore:https://github.com/cberner/redb
chrono 有了新的维护者
0.4.20 是自 2020 年 9 月以来的第一个 chrono 版本。由于之前的维护者不再能够在 crate 上花费太多时间,因此中断了很长时间;感谢@quodlibetor 多年来对 chrono crate 的管理!新的维护者是@djc 和@esheppa。
ReadMore:https://github.com/chronotope/chrono/releases/tag/v0.4.20-rc.1
From 日报小组 冰山上的 mook && Mike
社区学习交流平台订阅:
1
共 0 条评论, 1 页
评论区
写评论还没有评论