Files
mayfly-go/server/pkg/starter/cache.go

50 lines
1.3 KiB
Go
Raw Normal View History

2026-01-25 14:16:16 +08:00
package starter
import (
"context"
"fmt"
"mayfly-go/pkg/cache"
"mayfly-go/pkg/logx"
"mayfly-go/pkg/rediscli"
"github.com/redis/go-redis/v9"
)
// 有配置redis信息则初始化redis。多台机器部署需要使用redis存储验证码、权限、公私钥等信息
func initCache(redisConfig RedisConf) error {
redisCli, err := connRedis(redisConfig)
if redisCli == nil && err == nil {
logx.Info("no redis configuration, using local cache")
return nil
}
if err != nil {
return err
}
logx.Info("redis connected successfully, using Redis for caching")
rediscli.SetCli(redisCli)
cache.SetCache(cache.NewRedisCache(redisCli))
return nil
}
func connRedis(redisConfig RedisConf) (*redis.Client, error) {
// 设置redis客户端
if redisConfig.Host == "" {
return nil, nil
}
logx.Infof("redis connecting [%s:%d]", redisConfig.Host, redisConfig.Port)
rdb := redis.NewClient(&redis.Options{
Addr: fmt.Sprintf("%s:%d", redisConfig.Host, redisConfig.Port),
Password: redisConfig.Password, // no password set
DB: redisConfig.Db, // use default DB
})
// 测试连接
_, e := rdb.Ping(context.TODO()).Result()
if e != nil {
logx.Errorf("redis connection failed! [%s:%d][%s]", redisConfig.Host, redisConfig.Port, e.Error())
}
return rdb, e
}