增加Redis的调整,直接返回redis对象
This commit is contained in:
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user