Golang-levelDB的使用

package main

import (

"fmt"

"github.com/syndtr/goleveldb/leveldb"

)

func main() {

levelDB()

}

func levelDB() {

//定義字符數(shù)組key value

? key := []byte("Test")

value := []byte("Test Level DB")

//定義字符串的鍵值對

? k1 :="key"

? v1 :="value"

? // The returned DB instance is safe for concurrent use.

// The DB must be closed after use, by calling Close method.

//文件夾位置,獲取db實例-設置數(shù)據(jù)庫文件的位置

? db, err := leveldb.OpenFile("path/to/db", nil)

//leveldb.

//延遲關閉db流,必須的操作

? defer db.Close()

if err != nil {

fmt.Println(err)

}

//向db中插入鍵值對

? e := db.Put(key, value, nil)

//將字符串轉(zhuǎn)換為byte數(shù)組

? e = db.Put([]byte(k1), []byte(v1), nil)

fmt.Println(e)//

/**

|| 注意:查看路徑下的db文件,可知道文件都是自動切分為一些小文件.

*/

//根據(jù)key值查詢value

? data, _ := db.Get(key, nil)

fmt.Println(data)//[84 101 115 116 32 76 101 118 101 108 32 68 66]

? fmt.Printf("%c\n",data)//[T e s t? L e v e l? D B]

? data, _ = db.Get([]byte(k1), nil)

fmt.Println(data)//[118 97 108 117 101]

? fmt.Printf("%c\n",data)//[v a l u e]

// It is safe to modify the contents of the arguments after Delete returns but

// not before.

//根據(jù)key進行刪除操作

? i := db.Delete(key, nil)

fmt.Println(i)//

? data, _ = db.Get(key, nil)

fmt.Println(data)//[]

//

//獲取db快照

? snapshot, i := db.GetSnapshot()

fmt.Println(snapshot)//leveldb.Snapshot{22}

? fmt.Println(i)//

//注意: The snapshot must be released after use, by calling Release method.

//也就是說snapshot在使用之后,必須使用它的Release方法釋放!

? snapshot.Release()

}


levelDB使用
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內(nèi)容