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
}

----------------------------------【喜欢打赏】-------------------------------------------

小主,辛苦啦!文章棒棒哒,赏杯咖啡吧...
打赏

----------------------------------【喜欢打赏】-------------------------------------------

猜你喜欢

转载自www.cnblogs.com/tomtellyou/p/12302273.html
今日推荐