Golang 之 key-value LevelDB

时常会在应用中用到数据库功能,象 Key-Value 性质的。直接搬个 Redis,Mysql嫌大,好在有 LevelDB,直接编进应用中。

有关什么是 LevelDB 以及 LevelDB 的特性,可Google之,我们看看如何用。

先要

go get github.com/syndtr/goleveldb/leveldb

然后在文件中 import 进来。

1.打开数据库

db,err = leveldb.OpenFile("./db",nil)
if (err != nil) { panic(err) }

如果这里如果有错,直接报了。

 

2.然后,读用 db.Get, 写用 db.Put 。

3.代码中的一小段。

package main

import (
    "github.com/syndtr/goleveldb/leveldb"
    "fmt"
    "strconv"
)

var db *leveldb.DB

const ID_FIELD  =  "id"

func init(){
    var err error
    db,err = leveldb.OpenFile("./db",nil)
    if (err != nil) {
        panic(err)
    }

    _,err = db.Get([]byte(ID_FIELD),nil)
    if (err!=nil) {
        db.Put([]byte(ID_FIELD),[]byte("10000"),nil)
    }
}

func GetNextId() int {
    ids,err := db.Get([]byte(ID_FIELD),nil)
    if (err != nil) {
        fmt.Println(err)
    }
    id := Byte2int(ids)
    db.Put([]byte(ID_FIELD),Int2byte(id+1),nil)
    return id
}

func Byte2int(val []byte) int {
    var result int
    result,_ = strconv.Atoi(string(val))
    return result
}

func Int2byte(val int) []byte {
    result := []byte(strconv.Itoa(val))
    return result
}

 

转载于:https://www.cnblogs.com/qufo/p/5701237.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值