0_base.go 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. package cache
  2. import (
  3. "cockData/server/config"
  4. "cockData/server/log"
  5. "fmt"
  6. "github.com/go-redis/redis"
  7. )
  8. var rdb *redis.Client // redis连接池
  9. var rcdb *redis.ClusterClient // redis集群连接池
  10. var _isCluster bool = false // 是否集群
  11. func Init(config *config.RedisConfig) {
  12. if config.Cluster {
  13. _isCluster = true
  14. addrs := make([]string, 0)
  15. for _, clusterConfig := range *config.ClusterAddr {
  16. addr := fmt.Sprintf("%s:%d", clusterConfig.Host, clusterConfig.Port)
  17. addrs = append(addrs, addr)
  18. }
  19. opt := redis.ClusterOptions{
  20. Addrs: addrs,
  21. Password: config.Password,
  22. PoolSize: config.PoolSize,
  23. }
  24. rcdb = redis.NewClusterClient(&opt)
  25. } else {
  26. opt := redis.Options{
  27. Addr: fmt.Sprintf("%s:%d", config.Host, config.Port),
  28. Password: config.Password,
  29. DB: config.DatabaseIndex,
  30. PoolSize: config.PoolSize,
  31. }
  32. rdb = redis.NewClient(&opt)
  33. }
  34. if config.Cluster {
  35. if err := rcdb.Ping().Err(); err != nil {
  36. panic("Redis连接失败,请检查配置")
  37. } else {
  38. log.Info("Redis连接完毕...")
  39. }
  40. } else {
  41. if err := rdb.Ping().Err(); err != nil {
  42. panic("Redis连接失败,请检查配置")
  43. } else {
  44. log.Info("Redis连接完毕...")
  45. }
  46. }
  47. }