package db import ( "github.com/go-redis/redis" "live/app/lib/config" "time" ) type RedisConfig struct { Name string `toml:"name"` Proto string `toml:"proto"` Addr string `toml:"addr"` Idle int `toml:"idle"` Active int `toml:"active"` DialTimeout int `toml:"dialTimeout"` ReadTimeout int `toml:"readTimeout"` WriteTimeout int `toml:"writeTimeout"` IdleTimeout int `toml:"idleTimeout"` } var ( Redis *redis.Client ) func init() { addr := config.Config.Section("redis").Key("addr").String() password := config.Config.Section("redis").Key("password").String() c := &RedisConfig{ Name: "recook.redis", Addr: addr, Idle: 10, Active: 10, DialTimeout: 1, ReadTimeout: 1, WriteTimeout: 1, IdleTimeout: 10, } Redis = redis.NewClient(&redis.Options{ Addr: c.Addr, Password: password, DB: 0, // use default DB ReadTimeout: time.Duration(c.ReadTimeout) * time.Second, WriteTimeout: time.Duration(c.WriteTimeout) * time.Second, }) _, err := Redis.Ping().Result() if err != nil { panic(err) } }