1个不稳定版本
0.0.1 | 2024年3月23日 |
---|
#75 在 #entries
22KB
321 行
muDB
- 数据库是一个简单轻量级的数据库,提供基本的数据库功能,可以通过接受数据库文件路径的新函数创建。
- 数据库支持基本操作,如插入键值对、检索值、删除条目和清除所有数据。
- 它还提供高级功能,如指定位置的直接读写操作、检查数据库或缓冲区是否为空,以及通过删除未使用空间来优化数据库文件。
示例
let mut db = mu_db::DataBase::new("./test.db");
// This will generate ./test.db and ./index_test.db if they don't exist.
db.insert("key", "before_value");
db.insert("key", "after_value");
let value = db.get("key");
assert_eq!(value, Some("after_value".to_string()));
db.remove("key");
assert_eq!(db.get("key"), None);
assert!(db.is_empty()); // index is empty
assert!(!db.is_buf_empty()); // db is not empty
assert_eq!(db.buf_len(), 12); // db: `after_valuee`
db.shrink(); // remove unused space
assert!(db.is_buf_empty());
db.write_at(5, "world").unwrap(); // write to db file directly without syncing index
let data = db.read_at(5, 5).unwrap(); // read db file directly
assert_eq!(data, "world".to_string());
db.clear_all().unwrap(); // clear everything (index and db)
assert!(db.is_empty());
assert!(db.is_buf_empty());
请注意,mu_db是一个简单轻量级的数据库,不支持复杂的数据库操作,如事务、连接等。它最适合简单的键值存储需求。