zoukankan      html  css  js  c++  java
  • 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
    }
    

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

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

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

  • 相关阅读:
    系统安全及应用
    进程和计划任务管理
    Java技术体系
    开机十步和进程管理
    Raid
    LVM逻辑卷
    sed命令
    磁盘管理
    你的背景,是这个时代 张璁
    别将梦想停留在二十岁
  • 原文地址:https://www.cnblogs.com/tomtellyou/p/12302273.html
Copyright © 2011-2022 走看看