增加Redis的调整,直接返回redis对象

This commit is contained in:
2025-11-30 14:53:54 +08:00
parent 4fe98f2815
commit 6323b49517
7 changed files with 342 additions and 36 deletions

View File

@@ -62,19 +62,29 @@ db.Find(&users)
db.Create(&user)
```
### 4. 获取Redis配置
### 4. 获取Redis客户端(已初始化,推荐)
```go
// 获取Redis配置用于创建Redis客户端
// 注意Go标准库没有Redis客户端需要调用方使用第三方库创建
redisConfig := fac.GetRedisConfig()
if redisConfig != nil {
// 使用go-redis创建客户端示例
// rdb := redis.NewClient(&redis.Options{
// Addr: fmt.Sprintf("%s:%d", redisConfig.Host, redisConfig.Port),
// Password: redisConfig.Password,
// DB: redisConfig.Database,
// })
import (
"context"
"github.com/redis/go-redis/v9"
)
// 直接获取已初始化的Redis客户端对象
redisClient, err := fac.GetRedisClient()
if err != nil {
log.Fatal(err)
}
// 直接使用,无需再创建连接
ctx := context.Background()
val, err := redisClient.Get(ctx, "key").Result()
if err != nil && err != redis.Nil {
log.Printf("Redis error: %v", err)
} else if err == redis.Nil {
fmt.Println("Key not found")
} else {
fmt.Printf("Value: %s\n", val)
}
```
@@ -244,6 +254,18 @@ func main() {
- 自动配置连接池参数
- 数据库时间统一使用UTC时区
### (f *Factory) GetRedisClient() (*redis.Client, error)
获取Redis客户端对象已初始化
**返回:** 已初始化的Redis客户端对象和错误信息
**说明:**
- 自动处理所有配置检查和连接测试
- 自动设置默认值(连接池大小、超时时间等)
- 连接失败时会自动关闭客户端并返回错误
- 返回的客户端已通过Ping测试可直接使用
### (f *Factory) GetRedisConfig() *config.RedisConfig
获取Redis配置用于创建Redis客户端
@@ -251,8 +273,8 @@ func main() {
**返回:** Redis配置对象可能为nil
**说明:**
- Go标准库没有Redis客户端需要调用方使用第三方库如go-redis/redis创建
- 返回配置对象调用方可以根据配置创建Redis客户端
- 推荐使用 `GetRedisClient()` 方法直接获取已初始化的客户端
- 如果需要自定义创建Redis客户端可以使用此方法获取配置
### (f *Factory) GetConfig() *config.Config