database.go 1016 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. package common
  2. import (
  3. "fmt"
  4. "github.com/go-redis/redis/v8"
  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. rdb := redis.NewClient(&redis.Options{
  36. Addr: viper.GetString("redis.addr"),
  37. Password: viper.GetString("redis.password"),
  38. DB: viper.GetInt("redis.db"),
  39. PoolSize: viper.GetInt("redis.poolsize"),
  40. })
  41. Redis = rdb
  42. }