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

View File

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