go项目中数据库连接,以及redis连接
文件:common/mysql.go 数据库连接文件
package common import ( "gorm.io/driver/mysql" "gorm.io/gorm" "gorm.io/gorm/schema" "log" ) var DB *gorm.DB //全局定义DB var dbErr error //定义数据库错误 func init() { dsn := "root:root123456@tcp(127.0.0.1:3306)/godemo?charset=utf8" DB, dbErr = gorm.Open(mysql.Open(dsn),&gorm.Config{ //全局配置 NamingStrategy: schema.NamingStrategy{ SingularTable: true, //表名不增加复数 }, }) sqlDb,_ := DB.DB() //设置连接超时 sqlDb.SetConnMaxLifetime(3000) //设置最大生存时间,3000秒,比数据库的3600要小 sqlDb.SetMaxIdleConns(30) //设置最大空闲连接 sqlDb.SetMaxOpenConns(1000) //设置最大连接数 if dbErr != nil { log.Fatal(dbErr.Error()) } }
注意:
一定要设置 最大生存时间,这个生存时间要比mysql里面的max_life_time 要小。不然管理后台会经常性的自动退出。
文件:common/myredis.go 连接redis
package common import ( "github.com/gomodule/redigo/redis" "log" ) var Redi redis.Conn var err error func init() { setdb := redis.DialDatabase(0) setPasswd := redis.DialPassword("11223355") //redis密码 //连接redis Redi, err = redis.Dial("tcp", "redis:6379",setdb,setPasswd) if err != nil { log.Fatal(err) } } //设置值 func SetRedisVal(name string,value string,expire int) bool { Redi.Do("set",name,value) Redi.Do("expire",name,expire) return true } //获取值 func GetRedisVal(name string) string { res,err := Redi.Do("get",name) if err != nil || res == nil { return "" } val,err := redis.String(res,err) if err != nil { return "" } return val }
完结
但行好事,莫问前程!
本文来自博客园,作者:yangphp,转载请注明原文链接:https://www.cnblogs.com/ypeih/p/17334578.html