mirror of
https://gitlab.52pay.top/go/easygoadmin.git
synced 2025-09-28 05:24:20 +08:00
58 lines
1.0 KiB
Go
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()
|
|
}
|