sled怎么使用
发表于:2025-02-03 作者:千家信息网编辑
千家信息网最后更新 2025年02月03日,这篇文章主要介绍了sled怎么使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇sled怎么使用文章都会有所收获,下面我们一起来看看吧。简介Sled 是基于Bw树构建的嵌
千家信息网最后更新 2025年02月03日sled怎么使用Sled 是基于Bw树构建的嵌入式KV数据库,其API接近于一个线程安全的BTreeMap<[u8], [u8]>。而其Bw树的数据结构加上包括crossbeam-epoch的"GC"等技术,使得Sled成为一个lock-free的数据库而在并发环境中傲视群雄。忘记那些慢吞吞的锁吧~ 而官方宣称在一台16核的机器上,在一个小数据集上可以达到每分钟10亿次操作(95%读核5%写) 要使用sled,只需要在Cargo.toml中加入 基础用法 处理结构体
这篇文章主要介绍了sled怎么使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇sled怎么使用文章都会有所收获,下面我们一起来看看吧。
简介
sled = "0.32"
例子
打开数据库
let tree = sled::open("/tmp/welcome-to-sled").expect("open");
// 插入KV,读取Key对应的值
tree.insert("KEY1", "VAL1");
assert_eq!(tree.get(&"KEY1"), Ok(Some(sled::IVec::from("VAL1"))));
// 范围查询
for kv in tree.range("KEY1".."KEY9") {
...
}
// 删除
tree.remove(&"KEY1");
// atomic compare and swap,可以用在并发编程中
tree.compare_and_swap("KEY1", Some("VAL1"), Some("VAL2"));
// 阻塞直到所有修改都写入硬盘
tree.flush();
use {
byteorder::{BigEndian, LittleEndian},
zerocopy::{
byteorder::U64, AsBytes, FromBytes, LayoutVerified, Unaligned,
},
};
// 键结构体
// zerocopy::byteorder::U64保证了数据对齐问题
#[derive(FromBytes, AsBytes, Unaligned)]
#[repr(C)]
struct Key {
a: U64
, b: U64
, }
// 值结构体
#[derive(FromBytes, AsBytes, Unaligned)]
#[repr(C)]
struct Value {
count: U64
, whatever: [u8; 16],
}
let key = Key { a: U64::new(21), b: U64::new(890) };
// 取得键所对应的值,并对其施加给定函数灿做
db.update_and_fetch(key.as_bytes(), |value_opt| {
if let Some(existing) = value_opt {
let mut backing_bytes = sled::IVec::from(existing);
// 验证数据对齐(这里其实不是必须的,因为我们使用了U64)
let layout: LayoutVerified<&mut [u8], Value> =
LayoutVerified::new_unaligned(&mut *backing_bytes)
.expect("bytes do not fit schema");
// 得到底层数据的可变引用
let value: &mut Value = layout.into_mut();
let new_count = value.count.get() + 1;
println!("incrementing count to {}", new_count);
value.count.set(new_count);
Some(backing_bytes)
} else {
println!("setting count to 0");
// 初始化一个Value
Some(sled::IVec::from(
Value { count: U64::new(0), whatever: [0; 16] }.as_bytes(),
))
}
})?;
关于"sled怎么使用"这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对"sled怎么使用"知识都有一定的了解,大家如果还想学习更多知识,欢迎关注行业资讯频道。
数据
结构
数据库
知识
内容
篇文章
安全
价值
例子
函数
基础
官方
嵌入式
底层
技术
操作简单
数据结构
文章
易懂
更多
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
服务器硬盘接口有哪些种类
计算机网络技术试题文本
服务器的数据来源
把自己家电脑改成服务器
安徽工业软件开发靠谱吗
协智网络技术有限公司
网易服务器备份存档储存在哪里
做好互联网科技创新
jq清空表单的数据库
运维工程师可以管多少服务器
网络安全运维要学什么
网络安全有关的名句
网络安全法第一章第十一条讲什么
成都软件开发商名录
游戏服务器程序面试题
安徽软件开发服务商
关于软件开发的法规
温州mes软件开发
南邮网络安全考研分数线
linux能不能做网络安全
许昌软件开发规定
2018全国网络安全知识题
阿里云1核1m2g服务器
地域原因软件开发成本低
删除服务器日志
把一串数据库取整的函数
江西省网络技术设备研究所
软件开发哪里可以学习
连云港网络服务器机柜有几种
网络安全攻击途径