From a3543c79e253759392e08e01fb988330fe140a99 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=99=BD=E8=8C=B6=E6=B8=85=E6=AC=A2?= Date: Tue, 25 Aug 2026 09:29:30 +0800 Subject: [PATCH] fix --- .gitignore | 1 + client.go | 2 +- client_test.go | 34 ++++++++++++++++++++++++++++++++++ 3 files changed, 36 insertions(+), 1 deletion(-) create mode 100644 client_test.go diff --git a/.gitignore b/.gitignore index 72f529f..c082253 100644 --- a/.gitignore +++ b/.gitignore @@ -20,3 +20,4 @@ .vscode mail_test.go *_test.go +!client_test.go diff --git a/client.go b/client.go index 5432098..1f659bb 100644 --- a/client.go +++ b/client.go @@ -196,7 +196,7 @@ func (o *OwnClient) AddClient(instanceFlag string, logger *zap.Logger, instanceC clientInfo.Master = o.newClient(instanceConfig.Master) } if nil != instanceConfig.Slave { - clientInfo.Master = o.newClient(instanceConfig.Slave) + clientInfo.Slave = o.newClient(instanceConfig.Slave) } o.lock.Lock() defer o.lock.Unlock() diff --git a/client_test.go b/client_test.go new file mode 100644 index 0000000..ad75bf6 --- /dev/null +++ b/client_test.go @@ -0,0 +1,34 @@ +package redis + +import ( + "sync" + "testing" + + "git.zhangdeman.cn/zhangdeman/redis/define" + "go.uber.org/zap" +) + +func TestAddClientKeepsMasterAndSlaveSeparate(t *testing.T) { + client := &OwnClient{ + lock: &sync.RWMutex{}, + instanceTable: map[string]*define.ClientInfo{}, + whiteCommandTable: map[string]bool{}, + logger: zap.NewNop(), + } + err := client.AddClient("main", zap.NewNop(), &define.Config{ + Master: &define.Options{Addr: "master.example:6379"}, + Slave: &define.Options{Addr: "slave.example:6379"}, + }) + if err != nil { + t.Fatal(err) + } + info := client.GetRealClient("main") + if info.MasterClient() == nil || info.MasterClient().Options().Addr != "master.example:6379" { + t.Fatal("master connection was overwritten") + } + if info.SlaveClient() == nil || info.SlaveClient().Options().Addr != "slave.example:6379" { + t.Fatal("slave connection was not retained") + } + _ = info.MasterClient().Close() + _ = info.SlaveClient().Close() +}