This commit is contained in:
2026-08-25 09:29:30 +08:00
parent 825ae95ecb
commit a3543c79e2
3 changed files with 36 additions and 1 deletions
+1
View File
@@ -20,3 +20,4 @@
.vscode
mail_test.go
*_test.go
!client_test.go
+1 -1
View File
@@ -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()
+34
View File
@@ -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()
}