Merge pull request #782 from go-redis/fix/sentinel-client

Export SentinelClient
This commit is contained in:
Vladimir Mihailenco 2018-05-31 13:32:25 +03:00 committed by GitHub
commit 83fb42932f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 14 additions and 15 deletions

View File

@ -99,25 +99,23 @@ func NewFailoverClient(failoverOpt *FailoverOptions) *Client {
//------------------------------------------------------------------------------
type sentinelClient struct {
cmdable
type SentinelClient struct {
baseClient
}
func newSentinel(opt *Options) *sentinelClient {
func NewSentinelClient(opt *Options) *SentinelClient {
opt.init()
c := sentinelClient{
c := &SentinelClient{
baseClient: baseClient{
opt: opt,
connPool: newConnPool(opt),
},
}
c.baseClient.init()
c.cmdable.setProcessor(c.Process)
return &c
return c
}
func (c *sentinelClient) PubSub() *PubSub {
func (c *SentinelClient) PubSub() *PubSub {
return &PubSub{
opt: c.opt,
@ -128,13 +126,13 @@ func (c *sentinelClient) PubSub() *PubSub {
}
}
func (c *sentinelClient) GetMasterAddrByName(name string) *StringSliceCmd {
func (c *SentinelClient) GetMasterAddrByName(name string) *StringSliceCmd {
cmd := NewStringSliceCmd("SENTINEL", "get-master-addr-by-name", name)
c.Process(cmd)
return cmd
}
func (c *sentinelClient) Sentinels(name string) *SliceCmd {
func (c *SentinelClient) Sentinels(name string) *SliceCmd {
cmd := NewSliceCmd("SENTINEL", "sentinels", name)
c.Process(cmd)
return cmd
@ -151,7 +149,7 @@ type sentinelFailover struct {
mu sync.RWMutex
masterName string
_masterAddr string
sentinel *sentinelClient
sentinel *SentinelClient
}
func (d *sentinelFailover) Close() error {
@ -205,7 +203,7 @@ func (d *sentinelFailover) masterAddr() (string, error) {
}
for i, sentinelAddr := range d.sentinelAddrs {
sentinel := newSentinel(&Options{
sentinel := NewSentinelClient(&Options{
Addr: sentinelAddr,
DialTimeout: d.opt.DialTimeout,
@ -219,7 +217,8 @@ func (d *sentinelFailover) masterAddr() (string, error) {
masterAddr, err := sentinel.GetMasterAddrByName(d.masterName).Result()
if err != nil {
internal.Logf("sentinel: GetMasterAddrByName master=%q failed: %s", d.masterName, err)
internal.Logf("sentinel: GetMasterAddrByName master=%q failed: %s",
d.masterName, err)
sentinel.Close()
continue
}
@ -246,7 +245,7 @@ func (d *sentinelFailover) switchMaster(masterAddr string) {
d._masterAddr = masterAddr
}
func (d *sentinelFailover) setSentinel(sentinel *sentinelClient) {
func (d *sentinelFailover) setSentinel(sentinel *SentinelClient) {
d.discoverSentinels(sentinel)
d.sentinel = sentinel
go d.listen(sentinel)
@ -268,7 +267,7 @@ func (d *sentinelFailover) _resetSentinel() error {
return err
}
func (d *sentinelFailover) discoverSentinels(sentinel *sentinelClient) {
func (d *sentinelFailover) discoverSentinels(sentinel *SentinelClient) {
sentinels, err := sentinel.Sentinels(d.masterName).Result()
if err != nil {
internal.Logf("sentinel: Sentinels master=%q failed: %s", d.masterName, err)
@ -292,7 +291,7 @@ func (d *sentinelFailover) discoverSentinels(sentinel *sentinelClient) {
}
}
func (d *sentinelFailover) listen(sentinel *sentinelClient) {
func (d *sentinelFailover) listen(sentinel *SentinelClient) {
var pubsub *PubSub
for {
if pubsub == nil {