45 lines
896 B
Go
45 lines
896 B
Go
package cache
|
||
|
||
import (
|
||
"SciencesServer/config"
|
||
"SciencesServer/serve/cache/logic"
|
||
"fmt"
|
||
)
|
||
|
||
var (
|
||
Cache logic.ICache
|
||
|
||
engines = map[string]func() logic.ICache{
|
||
"memory": memory, "redis": redis,
|
||
}
|
||
)
|
||
|
||
func memory() logic.ICache {
|
||
return logic.NewMemory()
|
||
}
|
||
|
||
func redis() logic.ICache {
|
||
return logic.NewRedis(&logic.RedisOption{
|
||
Addr: config.SettingInfo.Cache.Redis.Addr,
|
||
Password: config.SettingInfo.Cache.Redis.Password,
|
||
DB: config.SettingInfo.Cache.Redis.DB,
|
||
MinIdleConns: config.SettingInfo.Cache.Redis.MaxIdle,
|
||
IdleTimeout: config.SettingInfo.Cache.Redis.IdleTimeout,
|
||
})
|
||
}
|
||
|
||
func Init() {
|
||
handle, has := engines[config.SettingInfo.Cache.Type]
|
||
|
||
if !has {
|
||
panic(fmt.Sprintf("Unknown Cache Engine Mode:%s", config.SettingInfo.Cache.Type))
|
||
}
|
||
Cache = handle()
|
||
|
||
err := Cache.Run()
|
||
|
||
if err != nil {
|
||
panic("Cache Run Error:" + err.Error())
|
||
}
|
||
}
|