database.go 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. package common
  2. import (
  3. "fmt"
  4. "github.com/go-redis/redis/v9"
  5. _ "github.com/go-sql-driver/mysql"
  6. "github.com/jmoiron/sqlx"
  7. "github.com/spf13/viper"
  8. )
  9. var DB *sqlx.DB
  10. var Redis *redis.Client
  11. func initMySQL() {
  12. host := viper.GetString("mysql.host")
  13. port := viper.GetString("mysql.port")
  14. database := viper.GetString("mysql.database")
  15. username := viper.GetString("mysql.username")
  16. password := viper.GetString("mysql.password")
  17. charset := viper.GetString("mysql.charset")
  18. dsn := fmt.Sprintf("%s:%s@tcp(%s:%s)/%s?charset=%s&parseTime=true",
  19. username,
  20. password,
  21. host,
  22. port,
  23. database,
  24. charset)
  25. db, err := sqlx.Open("mysql", dsn)
  26. if err != nil {
  27. fmt.Printf("err:%#v", err)
  28. return
  29. }
  30. db.SetMaxOpenConns(20)
  31. db.SetMaxIdleConns(20)
  32. DB = db
  33. }
  34. func initRedis() {
  35. addr := viper.GetString("redis.addr")
  36. password := viper.GetString("redis.password")
  37. db := viper.GetInt("redis.db")
  38. poolsize := viper.GetInt("redis.poolsize")
  39. rdb := redis.NewClient(&redis.Options{
  40. Addr: addr,
  41. Password: password, // 密码
  42. DB: db, // 数据库
  43. PoolSize: poolsize, // 连接池大小
  44. })
  45. Redis = rdb
  46. }