Golang-levelDB的使用

会搬东西的小蚂蚁 · · 1407 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

package main

import (

"fmt"

"github.com/syndtr/goleveldb/leveldb"

)

func main() {

levelDB()

}

func levelDB() {

//定义字符数组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实例-设置数据库文件的位置

  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)

//将字符串转换为byte数组

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

fmt.Println(e)//

/**

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

*/

//根据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.

//根据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使用

有疑问加站长微信联系(非本文作者)

本文来自:简书

感谢作者:会搬东西的小蚂蚁

查看原文:Golang-levelDB的使用

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

1407 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传