栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

leveldb

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

leveldb

我在leveldb上玩了一些游戏到目前为止,这是我得到的。这应该可以帮助您入门。

package mainimport (    "pre.google.com/p/leveldb-go/leveldb/db"    "pre.google.com/p/leveldb-go/leveldb/table"    "fmt"    "runtime")type kv struct {    K []byte    V []byte}type kvs struct {    items map[int]kv}func (p *kv) PutKV(k []byte, v []byte) {    p.K = k    p.V = v}func (items *kvs) PutKVs() {    fmt.Println(items)}func (p *kv) GetKV() (key []byte, value []byte) {    key = p.K    value = p.V    return}func Check(e error) {    if e != nil {        _, file, line, _ := runtime.Caller(1)    }}func p(r []byte, e error) {    if e != nil {        return e    }    println(string(r))}const (    DBFILE = "/tmp/leveldb2.db")var DBFS = db.DefaultFileSystemfunc main() {    Connection, e := DBFS.Create(DBFILE)    Check(e)    w := table.NewWriter(Connection, nil)    defer w.Close()    e = w.Set([]byte("1"), []byte("red"), nil)    Check(e)    e = w.Set([]byte("2"), []byte("yellow"), nil)    Check(e)    e = w.Set([]byte("3"), []byte("blue"), nil)    Check(e)    e = w.Close()    Check(e)    w = nil    count()    fmt.Println("Printing # KV")    itemsKV := readByte()    fmt.Println(itemsKV[0])    fmt.Println(itemsKV[1])    fmt.Println(itemsKV[2])    println("Done Printing # KV")    Connection, e = DBFS.Create(DBFILE)    Check(e)    w = table.NewWriter(Connection, nil)    defer w.Close()    e = w.Set([]byte("4"), []byte("green"), nil)    Check(e)    e = w.Set([]byte("5"), []byte("white"), nil)    Check(e)    e = w.Set([]byte("6"), []byte("black"), nil)    Check(e)    e = w.Close()    Check(e)}func count() {    Connection, e := DBFS.Open(DBFILE)    Check(e)    b := []byte("0")    r := table.NewReader(Connection, nil)    println("nn###### Counting ###### ")    iter, n := r.Find(b, nil), 0    for iter.Next() {        n++        println("Count # ", n)    }    e = r.Close()    Check(e)    println("#####Total: ", n)}func read() map[int64]string {    Connection, e := DBFS.Open(DBFILE)    Check(e)    b := []byte("0")    r := table.NewReader(Connection, nil)    items := map[int64]string{}    iter, _ := r.Find(b, nil), 0    for iter.Next() {        k := iter.Key()        v := iter.Value()        items[int64(k[0])] = string(v)    }    e = r.Close()    Check(e)    return items}func readByte() map[int]kv {    Connection, e := DBFS.Open(DBFILE)    Check(e)    c := 0    b := []byte("0")    r := table.NewReader(Connection, nil)    //items := map[int64]kv{}    item := new(kv)    items := map[int]kv{}    iter, _ := r.Find(b, nil), 0    for iter.Next() {        k := iter.Key()        v := iter.Value()        item.PutKV(k, v)        items[c] = *item        c++    }    e = r.Close()    Check(e)    return items}func findOne(k []byte) []byte {    Connection, e := DBFS.Open(DBFILE)    Check(e)    b := []byte("0")    r := table.NewReader(Connection, nil)    iter, _ := r.Find(b, nil), 0    k = iter.Key()    v := iter.Value()    e = r.Close()    Check(e)    return v}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/381278.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号