navidrome/persistence/ledis.go

36 lines
589 B
Go
Raw Normal View History

2016-03-02 15:07:24 +01:00
package persistence
2016-02-28 06:55:36 +01:00
import (
"sync"
2016-02-28 06:55:36 +01:00
"github.com/astaxie/beego"
"github.com/siddontang/ledisdb/config"
2016-03-02 19:18:39 +01:00
"github.com/siddontang/ledisdb/ledis"
2016-02-28 06:55:36 +01:00
)
var (
2016-02-29 16:04:30 +01:00
_ledisInstance *ledis.Ledis
2016-03-02 19:18:39 +01:00
_dbInstance *ledis.DB
once sync.Once
2016-02-28 06:55:36 +01:00
)
func Db() *ledis.DB {
2016-02-28 06:55:36 +01:00
once.Do(func() {
config := config.NewConfigDefault()
config.DataDir = beego.AppConfig.String("dbPath")
l, _ := ledis.Open(config)
instance, err := l.Select(0)
if err != nil {
panic(err)
}
2016-02-29 16:04:30 +01:00
_ledisInstance = l
2016-02-28 06:55:36 +01:00
_dbInstance = instance
})
return _dbInstance
2016-02-29 16:04:30 +01:00
}
func dropDb() {
Db()
2016-02-29 16:04:30 +01:00
_ledisInstance.FlushAll()
2016-03-02 19:18:39 +01:00
}