這篇文章主要介紹了sled怎么使用的相關(guān)知識(shí),內(nèi)容詳細(xì)易懂,操作簡(jiǎn)單快捷,具有一定借鑒價(jià)值,相信大家閱讀完這篇sled怎么使用文章都會(huì)有所收獲,下面我們一起來(lái)看看吧。
成都創(chuàng)新互聯(lián)公司IDC提供業(yè)務(wù):服務(wù)器機(jī)柜租賃,成都服務(wù)器租用,服務(wù)器機(jī)柜租賃,重慶服務(wù)器租用等四川省內(nèi)主機(jī)托管與主機(jī)租用業(yè)務(wù);數(shù)據(jù)中心含:雙線機(jī)房,BGP機(jī)房,電信機(jī)房,移動(dòng)機(jī)房,聯(lián)通機(jī)房。
簡(jiǎn)介
sled = "0.32"
打開(kāi)數(shù)據(jù)庫(kù)
let tree = sled::open("/tmp/welcome-to-sled").expect("open");
// 插入KV,讀取Key對(duì)應(yīng)的值
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,可以用在并發(fā)編程中
tree.compare_and_swap("KEY1", Some("VAL1"), Some("VAL2"));
// 阻塞直到所有修改都寫入硬盤
tree.flush();
use {
byteorder::{BigEndian, LittleEndian},
zerocopy::{
byteorder::U64, AsBytes, FromBytes, LayoutVerified, Unaligned,
},
};
// 鍵結(jié)構(gòu)體
// zerocopy::byteorder::U64保證了數(shù)據(jù)對(duì)齊問(wèn)題
#[derive(FromBytes, AsBytes, Unaligned)]
#[repr(C)]
struct Key {
a: U64<BigEndian>,
b: U64<BigEndian>,
}
// 值結(jié)構(gòu)體
#[derive(FromBytes, AsBytes, Unaligned)]
#[repr(C)]
struct Value {
count: U64<LittleEndian>,
whatever: [u8; 16],
}
let key = Key { a: U64::new(21), b: U64::new(890) };
// 取得鍵所對(duì)應(yīng)的值,并對(duì)其施加給定函數(shù)燦做
db.update_and_fetch(key.as_bytes(), |value_opt| {
if let Some(existing) = value_opt {
let mut backing_bytes = sled::IVec::from(existing);
// 驗(yàn)證數(shù)據(jù)對(duì)齊(這里其實(shí)不是必須的,因?yàn)槲覀兪褂昧薝64)
let layout: LayoutVerified<&mut [u8], Value> =
LayoutVerified::new_unaligned(&mut *backing_bytes)
.expect("bytes do not fit schema");
// 得到底層數(shù)據(jù)的可變引用
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");
// 初始化一個(gè)Value
Some(sled::IVec::from(
Value { count: U64::new(0), whatever: [0; 16] }.as_bytes(),
))
}
})?;
關(guān)于“sled怎么使用”這篇文章的內(nèi)容就介紹到這里,感謝各位的閱讀!相信大家對(duì)“sled怎么使用”知識(shí)都有一定的了解,大家如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
網(wǎng)頁(yè)名稱:sled怎么使用
分享路徑:http://aaarwkj.com/article22/ipdojc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信小程序、外貿(mào)網(wǎng)站建設(shè)、搜索引擎優(yōu)化、ChatGPT、靜態(tài)網(wǎng)站、Google
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)