main.go 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. // Author: simon (ynwdlxm@163.com)
  2. // Date: 2025/5/26 11:33
  3. // Desc:
  4. package main
  5. import (
  6. "fmt"
  7. "os"
  8. "github.com/runningwater/go-redis/config"
  9. "github.com/runningwater/go-redis/lib/logger"
  10. "github.com/runningwater/go-redis/resp/handler"
  11. "github.com/runningwater/go-redis/tcp"
  12. )
  13. const configFile string = "redis.conf"
  14. var defaultProperties = &config.ServerProperties{
  15. Bind: "0.0.0.0",
  16. Port: 6379,
  17. }
  18. func fileExists(fileName string) bool {
  19. info, err := os.Stat(fileName)
  20. return err == nil && !info.IsDir()
  21. }
  22. func main() {
  23. logger.Setup(&logger.Settings{
  24. Path: "logs",
  25. Name: "go-redis",
  26. Ext: "log",
  27. TimeFormat: "2006-01-02",
  28. })
  29. if fileExists(configFile) {
  30. config.SetupConfig(configFile)
  31. } else {
  32. config.Properties = defaultProperties
  33. }
  34. logger.Info("start server")
  35. err := tcp.ListenAndServeWithSignal(
  36. &tcp.Config{
  37. Address: fmt.Sprintf("%s:%d", config.Properties.Bind, config.Properties.Port),
  38. },
  39. // tcp.NewEchoHandler(),
  40. handler.NewHandler(),
  41. )
  42. if err != nil {
  43. logger.Error(err)
  44. }
  45. }