Add Sentinel .Ping(), .Set(), .Monitor() and .Delete()

This commit is contained in:
Tim Vaillancourt 2019-05-25 22:54:40 +02:00 committed by GitHub
parent 0ffcfc31f5
commit fc8c05a674
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 37 additions and 0 deletions

View File

@ -130,6 +130,14 @@ func (c *SentinelClient) pubSub() *PubSub {
return pubsub return pubsub
} }
// Ping is used to test if a connection is still alive, or to
// measure latency.
func (c *SentinelClient) Ping() *StringCmd {
cmd := NewStringCmd("ping")
c.Process(cmd)
return cmd
}
// Subscribe subscribes the client to the specified channels. // Subscribe subscribes the client to the specified channels.
// Channels can be omitted to create empty subscription. // Channels can be omitted to create empty subscription.
func (c *SentinelClient) Subscribe(channels ...string) *PubSub { func (c *SentinelClient) Subscribe(channels ...string) *PubSub {
@ -219,6 +227,35 @@ func (c *SentinelClient) CkQuorum(name string) *StringCmd {
return cmd return cmd
} }
// Monitor tells the Sentinel to start monitoring a new master with the specified
// name, ip, port, and quorum. It is identical to the sentinel monitor configuration
// directive in sentinel.conf configuration file, with the difference that you can't
// use an hostname in as ip, but you need to provide an IPv4 or IPv6 address.
func (c *SentinelClient) Monitor(name, ip, port, quorum string) *StringCmd {
cmd := NewStringCmd("sentinel", "monitor", name, ip, port, quorum)
c.Process(cmd)
return cmd
}
// Set is used in order to change configuration parameters of a specific master.
// Multiple option / value pairs can be specified (or none at all). All the
// configuration parameters that can be configured via sentinel.conf are also
// configurable using the SET command.
func (c *SentinelClient) Set(name, option, value string) *StringCmd {
cmd := NewStringCmd("sentinel", "set", name, option, value)
c.Process(cmd)
return cmd
}
// Remove is used in order to remove the specified master: the master will no
// longer be monitored, and will totally be removed from the internal state of
// the Sentinel, so it will no longer listed by SENTINEL masters and so forth.
func (c *SentinelClient) Remove(name string) *StringCmd {
cmd := NewStringCmd("sentinel", "remove", name)
c.Process(cmd)
return cmd
}
type sentinelFailover struct { type sentinelFailover struct {
sentinelAddrs []string sentinelAddrs []string