package cache import ( "log" "os" "strings" "time" ) func NewManager() Manager { if strings.Contains(os.Getenv("PROFILE"), "redis") { log.Println("Cache | using redis cache") return newRedisCache() } else { log.Println("Cache | using in memory cache") return newInMemCache() } } type Manager interface { Set(key, value string, expiration time.Duration) error Get(key string) (string, error) Remove(key string) }