精品专区-精品自拍9-精品自拍三级乱伦-精品自拍视频-精品自拍视频曝光-精品自拍小视频

網站建設資訊

NEWS

網站建設資訊

sled怎么使用

這篇文章主要介紹了sled怎么使用的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇sled怎么使用文章都會有所收獲,下面我們一起來看看吧。

成都創新互聯公司IDC提供業務:服務器機柜租賃,成都服務器租用,服務器機柜租賃,重慶服務器租用等四川省內主機托管與主機租用業務;數據中心含:雙線機房,BGP機房,電信機房,移動機房,聯通機房。

簡介

Sled  是基于Bw樹構建的嵌入式KV數據庫,其API接近于一個線程安全的BTreeMap<[u8], [u8]>。而其Bw樹的數據結構加上包括crossbeam-epoch的“GC”等技術,使得Sled成為一個lock-free的數據庫而在并發環境中傲視群雄。忘記那些慢吞吞的鎖吧~ 而官方宣稱在一臺16核的機器上,在一個小數據集上可以達到每分鐘10億次操作(95%讀核5%寫)
要使用sled,只需要在Cargo.toml中加入
  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怎么使用”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注創新互聯行業資訊頻道。


標題名稱:sled怎么使用
鏈接地址:http://m.jcarcd.cn/article/ipdojc.html
主站蜘蛛池模板: 国产亚洲首页 | 日本美女日b视频 | 亚洲无码在线观看a | 午夜日韩免费 | 国产一区二区年轻 | 成人免费区一区二 | 日韩中文网 | 日韩欧美国产免费看 | 福利狠高清免费 | 日韩免费观看 | 精品国产午 | 日本深夜刺激视频 | 91福利国产在线 | 日本成人一区二区 | 国产一区二区网站 | 国产日韩欧美一区二 | 成人免费一级纶理片 | 国产喷水在线观看 | 欧美性夜影院亚洲 | 无码毛片一区 | 国产精品一区不卡在 | 国产精品日韩在线 | 日本在线理 | 日韩成人国产精品视 | 91国产红桃 | 成人深爱激情综合网 | 国产精品日韩欧美 | 91欧美在线视频 | 91小视频在线观看 | 91免费视频福利 | 人伦小说视频在线 | 午夜偷拍精品福利 | 国产精品乱伦综合 | 日韩视频网 | 精品国产乱子伦一区 | 成人午夜动漫 | 91特制| 欧美日韩影视在线 | 日韩欧美亚洲国产 | 成人奭片 | 精品在线观看 |