From 0ed080ee44addbec53440e7ba807a9aeed50424d Mon Sep 17 00:00:00 2001
From: dtapps
Date: Mon, 1 Apr 2024 23:47:49 +0800
Subject: [PATCH] =?UTF-8?q?-=20redis=E5=A2=9E=E5=8A=A0url=E8=BF=9E?=
=?UTF-8?q?=E6=8E=A5?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
README.md | 2 +-
redis.go | 45 +++++++++++++++++++++++++++++++++++----------
version.go | 2 +-
3 files changed, 37 insertions(+), 12 deletions(-)
diff --git a/README.md b/README.md
index 3339cce..465d2f1 100644
--- a/README.md
+++ b/README.md
@@ -13,5 +13,5 @@
#### 安装
```shell
-go get -v -u go.dtapp.net/dorm@v1.0.57
+go get -v -u go.dtapp.net/dorm@v1.0.58
```
diff --git a/redis.go b/redis.go
index 0217abf..af1d366 100644
--- a/redis.go
+++ b/redis.go
@@ -22,29 +22,29 @@ type RedisClientConfig struct {
// RedisClient
// https://redis.uptrace.dev/
type RedisClient struct {
- db *redis.Client // 驱动
- config *RedisClientConfig // 配置
+ db *redis.Client // 驱动
}
+// NewRedisClient 创建实例
func NewRedisClient(config *RedisClientConfig) (*RedisClient, error) {
c := &RedisClient{}
- c.config = config
- if c.config.PoolSize == 0 {
- c.config.PoolSize = 100
+ if config.PoolSize == 0 {
+ config.PoolSize = 100
}
c.db = redis.NewClient(&redis.Options{
- Addr: c.config.Addr, // 地址
- Password: c.config.Password, // 密码
- DB: c.config.DB, // 数据库
- PoolSize: c.config.PoolSize, // 连接池大小
- ReadTimeout: c.config.ReadTimeout, // 读取超时
+ Addr: config.Addr, // 地址
+ Password: config.Password, // 密码
+ DB: config.DB, // 数据库
+ PoolSize: config.PoolSize, // 连接池大小
+ ReadTimeout: config.ReadTimeout, // 读取超时
})
ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
defer cancel()
+ // 检测 Redis 连接是否正常连接
_, err := c.db.Ping(ctx).Result()
if err != nil {
return nil, errors.New(fmt.Sprintf("连接失败:%v", err))
@@ -52,3 +52,28 @@ func NewRedisClient(config *RedisClientConfig) (*RedisClient, error) {
return c, nil
}
+
+// NewRedisClientURL 创建实例
+func NewRedisClientURL(redisURL string) (*RedisClient, error) {
+
+ c := &RedisClient{}
+
+ opt, err := redis.ParseURL(redisURL)
+ if err != nil {
+ return c, nil
+ }
+
+ // 创建 Redis 客户端
+ c.db = redis.NewClient(opt)
+
+ ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
+ defer cancel()
+
+ // 检测 Redis 连接是否正常连接
+ _, err = c.db.Ping(ctx).Result()
+ if err != nil {
+ return nil, errors.New(fmt.Sprintf("连接失败:%v", err))
+ }
+
+ return c, nil
+}
diff --git a/version.go b/version.go
index a375967..072b465 100644
--- a/version.go
+++ b/version.go
@@ -1,4 +1,4 @@
package dorm
// Version 版本
-const Version = "1.0.57"
+const Version = "1.0.58"