xuyangus 发表于 2018-9-20 10:50:21

Golang 之 key-value LevelDB

package main  

  
import (
  

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

  
var db *leveldb.DB
  


  
const>  

  
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>  
}
  

  
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
  
}


页: [1]
查看完整版本: Golang 之 key-value LevelDB