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  }