時常會在應用中用到數據庫功能,象 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 }