go-redis 连接池

gopher Golang 137 次浏览 , 没有评论
// 定义redis链接池
var client *redis.Client

// 初始化redis链接池
func init() {
  db, err := beego.AppConfig.Int("redisDB")
  if err != nil {
    logs.Error("redis-db", err)
  }
  client = redis.NewClient(&redis.Options{
    Addr:         beego.AppConfig.String("redisAddr"),     // Redis地址
    Password:     beego.AppConfig.String("redisPassword"), // Redis账号
    DB:           db,                                      // Redis库
    PoolSize:     40,                                      // Redis连接池大小
    MaxRetries:   3,                                       // 最大重试次数
    IdleTimeout:  5 * time.Second,                         // 空闲链接超时时间
    MinIdleConns: 5,                                       // 空闲连接数量
  })
  pong, err := client.Ping().Result()
  if err == redis.Nil {
    logs.Info("Redis异常")
  } else if err != nil {
    logs.Info("失败:", err)
  } else {
    logs.Info(pong)
  }
}

type Redis struct{}

func (r Redis) Get(key string) (string, error) {
  result, err := client.Get(key).Result()
  if err != nil {
    return "", err
  }
  return result, nil
}

Options相关说明

发表评论

电子邮件地址不会被公开。 必填项已用*标注

Go