Redisの-mysqlの接続プール

1.Redis接続プールが作成されます

func GetRedisDBPool(addr, pwd string, db int) *redis.Pool {
    return &redis.Pool{
        MaxIdle:     6,
        IdleTimeout: 240 * time.Second,
        Dial: func() (redis.Conn, error) {
            opts := []redis.DialOption{
                redis.DialConnectTimeout(5 * time.Second),
                redis.DialReadTimeout(2 * time.Second),
                redis.DialWriteTimeout(2 * time.Second),
                redis.DialDatabase(db),
                redis.DialPassword(pwd),
            }
            c, err := redis.Dial("tcp", addr, opts...)
            if err != nil {
                fmt.Printf("connect %s error %s", addr, err.Error())
                return nil, err
            }
            return c, err
        },
        TestOnBorrow: func(c redis.Conn, t time.Time) error {
            _, err := c.Do("PING")
            return err
        },
    }
}

2.mysql接続

func GetDbByHost(user string, password string, host string,)  (*gorm.DB, error){
    var mysql = fmt.Sprintf(
        "%s:%s@tcp(%s:3306)/shop?charset=utf8mb4&parseTime=True&loc=Local",
        user, password, host,
    )

    log.Print(mysql)
    DB, err := gorm.Open("mysql", mysql)
    if err != nil {
        return nil, err
    }
    DB.DB().SetMaxIdleConns(10)
    DB.DB().SetMaxOpenConns(100)
    return DB, nil
}

---------------------------------- -----------報酬[など] --------------------------------

小さなメイン、ハードワークに!条バンバンdaは、コーヒーを楽しみます...
報酬

---------------------------------- -----------報酬[など] --------------------------------

おすすめ

転載: www.cnblogs.com/tomtellyou/p/12302273.html
おすすめ