52 lines
1.1 KiB
Go
52 lines
1.1 KiB
Go
|
package cache
|
||
|
|
||
|
import (
|
||
|
"strconv"
|
||
|
|
||
|
"dubbo.apache.org/dubbo-go/v3/common/logger"
|
||
|
"github.com/go-redis/redis"
|
||
|
"gopkg.in/ini.v1"
|
||
|
)
|
||
|
|
||
|
// RedisClient Redis缓存客户端单例
|
||
|
var (
|
||
|
RedisClient *redis.Client
|
||
|
RedisDB int
|
||
|
RedisAddr string
|
||
|
RedisPw string
|
||
|
//RedisDbName string
|
||
|
)
|
||
|
|
||
|
// InitRedis 在中间件中初始化redis链接 防止循环导包,所以放在这里
|
||
|
func InitRedis(confPath string) {
|
||
|
//从本地读取环境变量
|
||
|
file, err := ini.Load(confPath)
|
||
|
if err != nil {
|
||
|
panic(err)
|
||
|
}
|
||
|
LoadRedisData(file)
|
||
|
connRedis()
|
||
|
}
|
||
|
|
||
|
// connRedis 在中间件中初始化redis链接
|
||
|
func connRedis() {
|
||
|
RedisClient = redis.NewClient(&redis.Options{
|
||
|
Addr: RedisAddr,
|
||
|
Password: RedisPw,
|
||
|
DB: RedisDB,
|
||
|
})
|
||
|
_, err := RedisClient.Ping().Result()
|
||
|
if err != nil {
|
||
|
logger.Errorf("connRedis err", err)
|
||
|
panic(err)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func LoadRedisData(file *ini.File) {
|
||
|
dbStr := file.Section("redis").Key("RedisDb").String()
|
||
|
RedisDB, _ = strconv.Atoi(dbStr)
|
||
|
RedisAddr = file.Section("redis").Key("RedisAddr").String()
|
||
|
RedisPw = file.Section("redis").Key("RedisPW").String()
|
||
|
//RedisDbName = file.Section("redis").Key("RedisDbName").String()
|
||
|
}
|