/** * 数据库连接工具 * @author * @since 2021/9/8 * @File : db */ package utils import ( "fmt" "github.com/go-redis/redis/v8" _ "github.com/go-sql-driver/mysql" "gitlab.52pay.top/go/easygoadmin/library/cfg" "sync" "time" ) type RedisHelper struct { *redis.Client } var redisHelper *RedisHelper var redisOnce sync.Once func GetRedisHelper() *RedisHelper { return redisHelper } func NewRedisHelper() *redis.Client { // 获取配置实例 config := cfg.Instance() addr := fmt.Sprintf("%s:%d", config.RedisCfg.Addr, config.RedisCfg.Port) rdb := redis.NewClient(&redis.Options{ Addr: addr, Password: "", DB: int(config.RedisCfg.Db), DialTimeout: 10 * time.Second, ReadTimeout: 30 * time.Second, WriteTimeout: 30 * time.Second, PoolSize: 10, PoolTimeout: 30 * time.Second, }) redisOnce.Do(func() { rdh := new(RedisHelper) rdh.Client = rdb redisHelper = rdh }) return rdb } func init() { fmt.Println("初始化并连接redis") NewRedisHelper() }