package common import ( "fmt" "github.com/go-redis/redis/v8" _ "github.com/go-sql-driver/mysql" "github.com/jmoiron/sqlx" "github.com/spf13/viper" ) var DB *sqlx.DB var Redis *redis.Client func initMySQL() { host := viper.GetString("mysql.host") port := viper.GetString("mysql.port") database := viper.GetString("mysql.database") username := viper.GetString("mysql.username") password := viper.GetString("mysql.password") charset := viper.GetString("mysql.charset") dsn := fmt.Sprintf("%s:%s@tcp(%s:%s)/%s?charset=%s&parseTime=true", username, password, host, port, database, charset) db, err := sqlx.Open("mysql", dsn) if err != nil { fmt.Printf("err:%#v", err) return } db.SetMaxOpenConns(20) db.SetMaxIdleConns(20) DB = db } func initRedis() { rdb := redis.NewClient(&redis.Options{ Addr: viper.GetString("redis.addr"), Password: viper.GetString("redis.password"), DB: viper.GetInt("redis.db"), PoolSize: viper.GetInt("redis.poolsize"), }) Redis = rdb }