Files
easygoadmin/utils/redis.go
yaoyilin dbd3c3c247 feat: 封装为包
封装为包
2022-10-31 23:55:00 +08:00

58 lines
1.0 KiB
Go

/**
* 数据库连接工具
* @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()
}