db.go 992 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. package dblogic
  2. import (
  3. "os"
  4. "fmt"
  5. "blog/configs"
  6. "blog/core/sql"
  7. "blog/core/rediscli"
  8. "blog/models/tables"
  9. "github.com/go-redis/redis"
  10. "github.com/jinzhu/gorm"
  11. )
  12. func M(serverName string, keys ...string) *gorm.DB {
  13. server := tables.GetServerConf(serverName)
  14. //环形库一定要带参数
  15. sType := "main"
  16. if len(server) >= 6 && server[0:6] == "circle" {
  17. sType = "circle"
  18. }
  19. if sType == "circle" && len(keys) == 0 {
  20. fmt.Println("circle db must use circle key")
  21. os.Exit(-2)
  22. }
  23. //fmt.Println("server:"+server)
  24. conf, index := sysConfig.GetSqlConf(server, keys...)
  25. if conf == "" {
  26. fmt.Println("db config data not found")
  27. os.Exit(-3)
  28. }
  29. instKey := serverName
  30. if sType == "circle" {
  31. instKey = fmt.Sprintf("%s%d", instKey, index)
  32. }
  33. //fmt.Println(instKey)
  34. return sql.GetMysqlDb(conf, instKey)
  35. }
  36. func R(serverName ...string) *redis.Client{
  37. key := tables.GetRdConf(serverName...)
  38. host, auth := sysConfig.GetRedisConf(key)
  39. return rediscli.GetRedis(host, auth)
  40. }