package main import ( "fmt" "os" "github.com/hdt3213/godis/config" "github.com/hdt3213/godis/lib/logger" "github.com/hdt3213/godis/lib/utils" RedisServer "github.com/hdt3213/godis/redis/server" "github.com/hdt3213/godis/tcp" ) var banner = ` ______ ___ / ____/___ ____/ (_)____ / / __/ __ \/ __ / / ___/ / /_/ / /_/ / /_/ / (__ ) \____/\____/\__,_/_/____/ ` var defaultProperties = &config.ServerProperties{ Bind: "0.0.0.0", Port: 6399, AppendOnly: false, AppendFilename: "", MaxClients: 1000, RunID: utils.RandString(40), } func fileExists(filename string) bool { info, err := os.Stat(filename) return err == nil && !info.IsDir() } func main() { print(banner) logger.Setup(&logger.Settings{ Path: "logs", Name: "godis", Ext: "log", TimeFormat: "2006-01-02", }) configFilename := os.Getenv("CONFIG") if configFilename == "" { if fileExists("redis.conf") { config.SetupConfig("redis.conf") } else { config.Properties = defaultProperties } } else { config.SetupConfig(configFilename) } err := tcp.ListenAndServeWithSignal(&tcp.Config{ Address: fmt.Sprintf("%s:%d", config.Properties.Bind, config.Properties.Port), }, RedisServer.MakeHandler()) if err != nil { logger.Error(err) } }