main.go 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  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. addr := fmt.Sprintf("%s:%d", config.Properties.Bind, config.Properties.Port)
  35. logger.Info("server starting ...")
  36. err := tcp.ListenAndServeWithSignal(
  37. &tcp.Config{
  38. Address: addr,
  39. },
  40. // tcp.NewEchoHandler(),
  41. handler.NewHandler(),
  42. )
  43. if err != nil {
  44. logger.Error(err)
  45. }
  46. }