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()) } }