This commit is contained in:
谢小军
2020-08-14 20:13:11 +08:00
parent 8fc6e97d6d
commit 8804e91312
2 changed files with 19 additions and 12 deletions

View File

@@ -14,11 +14,13 @@ import (
var lock sync.Mutex
var locks = map[string]*sync.Mutex{}
// Param kv
type Param struct {
Key string
Value interface{}
}
// OnInitDB 初始化
func OnInitDB(dataSourceName string) MyLevelDB {
if _, ok := locks[dataSourceName]; !ok {
lock.Lock()
@@ -43,6 +45,7 @@ func OnInitDB(dataSourceName string) MyLevelDB {
return L
}
// MyLevelDB ...
type MyLevelDB struct {
DB *leveldb.DB
E error
@@ -51,7 +54,13 @@ type MyLevelDB struct {
Value interface{}
}
// OnDestoryDB 关闭
func (L *MyLevelDB) OnDestoryDB() {
L.Close()
}
// Close 关闭
func (L *MyLevelDB) Close() {
if L.DB != nil {
L.DB.Close()
L.DB = nil
@@ -59,7 +68,7 @@ func (L *MyLevelDB) OnDestoryDB() {
}
}
//获取数据
// Get 获取数据
func (L *MyLevelDB) Get(key string, value interface{}) (b bool) {
if L.DB != nil {
var err error
@@ -79,16 +88,17 @@ func (L *MyLevelDB) Get(key string, value interface{}) (b bool) {
return false
}
// Model ...
func (L *MyLevelDB) Model(refs interface{}) *MyLevelDB {
if reflect.ValueOf(refs).Type().Kind() == reflect.Ptr {
mylog.Println("Model: attempt to Model into a non-pointer")
mylog.ErrorString("Model: attempt to Model into a non-pointer")
panic(0)
}
L.Value = refs
return L
}
//模糊查找
// Find 模糊查找
/*
t value的类型
values 为返回结果
@@ -121,13 +131,13 @@ func (L *MyLevelDB) Find(values *[]Param, args ...string) (b bool) {
if L.Value == nil {
panic("not call Model()")
}
mylog.Println("not init.")
mylog.ErrorString("not init.")
}
return false
}
//添加数据
// Add 添加数据
//注意:只支持基础类型
func (L *MyLevelDB) Add(key string, value interface{}) bool {
if L.DB != nil {
@@ -146,7 +156,7 @@ func (L *MyLevelDB) Add(key string, value interface{}) bool {
return false
}
//添加一组数据(比一个一个添加速度快很多)
// AddList 添加一组数据(比一个一个添加速度快很多)
//注意:只支持基础类型
func (L *MyLevelDB) AddList(array []Param) bool {
if L.DB != nil {
@@ -165,16 +175,13 @@ func (L *MyLevelDB) AddList(array []Param) bool {
//错误处理
mylog.Error(err)
return false
} else {
return true
}
return true
}
return false
}
/*
删除
*/
// Delete 删除
func (L *MyLevelDB) Delete(key string) bool {
if L.DB != nil {
err := L.DB.Delete([]byte(key), nil)

View File

@@ -14,7 +14,7 @@ func (f *Lifo) Push(item interface{}) {
f.PushFront(item) // 没有就添加
}
// PushGrab 推送(重插位到头部)
// PushGrab 推送(重插位到头部)
func (f *Lifo) PushGrab(item interface{}) {
index := f.EqualAt(item)
if index >= 0 {