From 39810a520c1069edd26e44cdc0ce79e9e663e3f5 Mon Sep 17 00:00:00 2001 From: wanov <97511150+wanov@users.noreply.github.com> Date: Thu, 6 Jul 2023 20:58:31 +0800 Subject: [PATCH] add redis-config Auth Username (#2684) --- contrib/nosql/redis/redis.go | 1 + .../nosql/redis/redis_z_unit_config_test.go | 36 +++++++++++++++++++ database/gredis/gredis_config.go | 1 + 3 files changed, 38 insertions(+) diff --git a/contrib/nosql/redis/redis.go b/contrib/nosql/redis/redis.go index 5d191cd67..737e8e8ed 100644 --- a/contrib/nosql/redis/redis.go +++ b/contrib/nosql/redis/redis.go @@ -44,6 +44,7 @@ func New(config *gredis.Config) *Redis { fillWithDefaultConfiguration(config) opts := &redis.UniversalOptions{ Addrs: gstr.SplitAndTrim(config.Address, ","), + Username: config.User, Password: config.Pass, DB: config.Db, MaxRetries: defaultMaxRetries, diff --git a/contrib/nosql/redis/redis_z_unit_config_test.go b/contrib/nosql/redis/redis_z_unit_config_test.go index 99043ed54..b11d07d51 100644 --- a/contrib/nosql/redis/redis_z_unit_config_test.go +++ b/contrib/nosql/redis/redis_z_unit_config_test.go @@ -7,6 +7,7 @@ package redis_test import ( + "github.com/gogf/gf/v2/container/gvar" "testing" "time" @@ -34,3 +35,38 @@ func Test_ConfigFromMap(t *testing.T) { t.Assert(c.ReadTimeout, 10*time.Second) }) } + +func Test_ConfigAddUser(t *testing.T) { + gtest.C(t, func(t *gtest.T) { + var ( + c *gredis.Redis + err error + r *gvar.Var + ) + + c, err = gredis.New(&gredis.Config{ + Address: `127.0.0.1`, + Db: 1, + User: "root", + Pass: "", + }) + t.AssertNil(err) + + _, err = c.Conn(ctx) + t.AssertNil(err) + + _, err = redis.Do(ctx, "SET", "k", "v") + t.AssertNil(err) + + r, err = redis.Do(ctx, "GET", "k") + t.AssertNil(err) + t.Assert(r, []byte("v")) + + _, err = redis.Do(ctx, "DEL", "k") + t.AssertNil(err) + + r, err = redis.Do(ctx, "GET", "k") + t.AssertNil(err) + t.Assert(r, nil) + }) +} diff --git a/database/gredis/gredis_config.go b/database/gredis/gredis_config.go index 6a8f7d231..c743197df 100644 --- a/database/gredis/gredis_config.go +++ b/database/gredis/gredis_config.go @@ -23,6 +23,7 @@ type Config struct { // Address It supports single and cluster redis server. Multiple addresses joined with char ','. Eg: 192.168.1.1:6379, 192.168.1.2:6379. Address string `json:"address"` Db int `json:"db"` // Redis db. + User string `json:"user"` // Username for AUTH. Pass string `json:"pass"` // Password for AUTH. MinIdle int `json:"minIdle"` // Minimum number of connections allowed to be idle (default is 0) MaxIdle int `json:"maxIdle"` // Maximum number of connections allowed to be idle (default is 10)