github.com/hdt3213/godis@v1.2.9/main.go (about) 1 package main 2 3 import ( 4 "fmt" 5 "os" 6 7 "github.com/hdt3213/godis/config" 8 "github.com/hdt3213/godis/lib/logger" 9 "github.com/hdt3213/godis/lib/utils" 10 RedisServer "github.com/hdt3213/godis/redis/server" 11 "github.com/hdt3213/godis/tcp" 12 ) 13 14 var banner = ` 15 ______ ___ 16 / ____/___ ____/ (_)____ 17 / / __/ __ \/ __ / / ___/ 18 / /_/ / /_/ / /_/ / (__ ) 19 \____/\____/\__,_/_/____/ 20 ` 21 22 var defaultProperties = &config.ServerProperties{ 23 Bind: "0.0.0.0", 24 Port: 6399, 25 AppendOnly: false, 26 AppendFilename: "", 27 MaxClients: 1000, 28 RunID: utils.RandString(40), 29 } 30 31 func fileExists(filename string) bool { 32 info, err := os.Stat(filename) 33 return err == nil && !info.IsDir() 34 } 35 36 func main() { 37 print(banner) 38 logger.Setup(&logger.Settings{ 39 Path: "logs", 40 Name: "godis", 41 Ext: "log", 42 TimeFormat: "2006-01-02", 43 }) 44 configFilename := os.Getenv("CONFIG") 45 if configFilename == "" { 46 if fileExists("redis.conf") { 47 config.SetupConfig("redis.conf") 48 } else { 49 config.Properties = defaultProperties 50 } 51 } else { 52 config.SetupConfig(configFilename) 53 } 54 err := tcp.ListenAndServeWithSignal(&tcp.Config{ 55 Address: fmt.Sprintf("%s:%d", config.Properties.Bind, config.Properties.Port), 56 }, RedisServer.MakeHandler()) 57 if err != nil { 58 logger.Error(err) 59 } 60 }