mirror of
https://github.com/xxjwxc/public.git
synced 2025-09-26 20:01:19 +08:00
new
This commit is contained in:
@@ -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)
|
||||
|
@@ -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 {
|
||||
|
Reference in New Issue
Block a user