40 lines
793 B
Go
40 lines
793 B
Go
|
package database
|
||
|
|
||
|
const (
|
||
|
CacheName = "memcache"
|
||
|
//MemcacheFmt = "file:%s?mode=memory&cache=shared"
|
||
|
//BufferFmt = "file:%s?mode=memory&cache=shared"
|
||
|
DBTypeInMemoryDSN = "file:%s?mode=memory&cache=shared"
|
||
|
DBTypeCacheDSN = DBTypeInMemoryDSN
|
||
|
)
|
||
|
|
||
|
var (
|
||
|
// Global cache database
|
||
|
// Main in memory db, is synced with disc
|
||
|
// `CacheDB` is a memory replica of disk db
|
||
|
Cache = &CacheDB{}
|
||
|
)
|
||
|
|
||
|
type CacheDB struct {
|
||
|
DB *DB
|
||
|
}
|
||
|
|
||
|
func (c *CacheDB) IsInitialized() bool {
|
||
|
return Cache.DB != nil && Cache.DB.Handle != nil
|
||
|
}
|
||
|
|
||
|
func initCache() {
|
||
|
log.Debug("initializing cacheDB")
|
||
|
var err error
|
||
|
// Initialize memory db with schema
|
||
|
Cache.DB, err = New(CacheName, "", DBTypeCacheDSN).Init()
|
||
|
if err != nil {
|
||
|
log.Fatal(err)
|
||
|
}
|
||
|
|
||
|
err = Cache.DB.InitSchema()
|
||
|
if err != nil {
|
||
|
log.Fatal(err)
|
||
|
}
|
||
|
}
|