first commit
This commit is contained in:
55
utils/redis_util.go
Normal file
55
utils/redis_util.go
Normal file
@@ -0,0 +1,55 @@
|
||||
package utils
|
||||
|
||||
import (
|
||||
"Quincy_admin/config"
|
||||
"context"
|
||||
"fmt"
|
||||
"log"
|
||||
"strconv"
|
||||
"sync"
|
||||
|
||||
"github.com/go-redis/redis/v8"
|
||||
)
|
||||
|
||||
// Redis客户端全局变量
|
||||
var redisClient *redis.Client
|
||||
var redisOnce sync.Once
|
||||
|
||||
// InitRedis 初始化Redis连接
|
||||
func InitRedis(cfg *config.Config) *redis.Client {
|
||||
redisOnce.Do(func() {
|
||||
// 将字符串类型的DB转换为整数
|
||||
redisDB, err := strconv.Atoi(cfg.Redis.DB)
|
||||
if err != nil {
|
||||
log.Printf("Invalid Redis DB value '%s', using default 0: %v", cfg.Redis.DB, err)
|
||||
redisDB = 0
|
||||
}
|
||||
|
||||
// 创建Redis客户端
|
||||
redisClient = redis.NewClient(&redis.Options{
|
||||
Addr: fmt.Sprintf("%s:%s", cfg.Redis.Host, cfg.Redis.Port),
|
||||
Password: cfg.Redis.Password, // 没有密码则留空
|
||||
DB: redisDB, // 使用转换后的整数DB
|
||||
})
|
||||
|
||||
// 测试Redis连接
|
||||
ctx := context.Background()
|
||||
_, err = redisClient.Ping(ctx).Result()
|
||||
if err != nil {
|
||||
log.Printf("Error connecting to Redis: %v", err)
|
||||
} else {
|
||||
}
|
||||
})
|
||||
|
||||
return redisClient
|
||||
}
|
||||
|
||||
// GetRedis 获取Redis客户端
|
||||
func GetRedis() *redis.Client {
|
||||
return redisClient
|
||||
}
|
||||
|
||||
// GetContext 获取上下文
|
||||
func GetContext() context.Context {
|
||||
return context.Background()
|
||||
}
|
||||
Reference in New Issue
Block a user