這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。
時常會在應用中用到資料庫功能,象 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 mainimport ( "github.com/syndtr/goleveldb/leveldb" "fmt" "strconv")var db *leveldb.DBconst 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}