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 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)
|
||||||
|
@@ -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 {
|
||||||
|
Reference in New Issue
Block a user