Skip to content

Commit

Permalink
fix: fix sentinel password bugs & add sentinel username config
Browse files Browse the repository at this point in the history
  • Loading branch information
sevennt committed Nov 7, 2023
1 parent a2852e0 commit 61846bf
Show file tree
Hide file tree
Showing 2 changed files with 37 additions and 36 deletions.
48 changes: 24 additions & 24 deletions config.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,31 +19,31 @@ const (

// config for redis, contains RedisStubConfig, RedisClusterConfig and RedisSentinelConfig
type config struct {
Addrs []string // Addrs 实例配置地址
Addr string // Addr stubConfig 实例配置地址
Mode string // Mode Redis模式 cluster|stub|sentinel
MasterName string // MasterName 哨兵主节点名称,sentinel模式下需要配置此项
Password string // Password 密码
DB int // DB,默认为0, 一般应用不推荐使用DB分片
PoolSize int // PoolSize 集群内每个节点的最大连接池限制
MaxRetries int // MaxRetries 网络相关的错误最大重试次数 默认8次
MinIdleConns int // MinIdleConns 最小空闲连接数
DialTimeout time.Duration // DialTimeout 拨超时时间
ReadTimeout time.Duration // ReadTimeout 读超时 默认3s
WriteTimeout time.Duration // WriteTimeout 读超时 默认3s
IdleTimeout time.Duration // IdleTimeout 连接最大空闲时间,默认60s, 超过该时间,连接会被主动关闭
Debug bool // Debug开关, 是否开启调试,默认不开启,开启后并加上export EGO_DEBUG=true,可以看到每次请求,配置名、地址、耗时、请求数据、响应数据
ReadOnly bool // ReadOnly 集群模式 在从属节点上启用读模式
SlowLogThreshold time.Duration // 慢日志门限值,超过该门限值的请求,将被记录到慢日志中
OnFail string // OnFail panic|error
EnableMetricInterceptor bool // 是否开启监控,默认开启
EnableTraceInterceptor bool // 是否开启链路,默认开启
EnableAccessInterceptor bool // 是否开启,记录请求数据
EnableAccessInterceptorReq bool // 是否开启记录请求参数
EnableAccessInterceptorRes bool // 是否开启记录响应参数
Addrs []string // Addrs cluster|sentinel 模式下实例配置地址
Addr string // Addr stub 模式下实例配置地址
Mode string // Mode Redis模式 cluster|stub|sentinel
MasterName string // MasterName 哨兵主节点名称,sentinel模式下需要配置此项
Username string // Username sentinel 模式下用户密码
Password string // Password cluster|stub|sentinel 模式下密码
DB int // DB,默认为0, 一般应用不推荐使用DB分片
PoolSize int // PoolSize 集群内每个节点的最大连接池限制
MaxRetries int // MaxRetries 网络相关的错误最大重试次数 默认8次
MinIdleConns int // MinIdleConns 最小空闲连接数
DialTimeout time.Duration // DialTimeout 拨超时时间
ReadTimeout time.Duration // ReadTimeout 读超时 默认3s
WriteTimeout time.Duration // WriteTimeout 读超时 默认3s
IdleTimeout time.Duration // IdleTimeout 连接最大空闲时间,默认60s, 超过该时间,连接会被主动关闭
Debug bool // Debug 开关, 是否开启调试,默认不开启,开启后并加上export EGO_DEBUG=true,可以看到每次请求,配置名、地址、耗时、请求数据、响应数据
ReadOnly bool // ReadOnly 集群模式 在从属节点上启用读模式
SlowLogThreshold time.Duration // SlowLogThreshold 慢日志门限值,超过该门限值的请求,将被记录到慢日志中
OnFail string // OnFail panic|error
EnableMetricInterceptor bool // EnableMetricInterceptor 是否开启监控,默认开启
EnableTraceInterceptor bool // EnableTraceInterceptor 是否开启链路,默认开启
EnableAccessInterceptor bool // EnableAccessInterceptor 是否开启,记录请求数据
EnableAccessInterceptorReq bool // EnableAccessInterceptorReq 是否开启记录请求参数
EnableAccessInterceptorRes bool // EnableAccessInterceptorRes 是否开启记录响应参数
Authentication Authentication // Authentication TLS 参数支持
interceptors []redis.Hook
// TLS 参数支持
Authentication Authentication
}

// DefaultConfig default config ...
Expand Down
25 changes: 13 additions & 12 deletions container.go
Original file line number Diff line number Diff line change
Expand Up @@ -140,18 +140,19 @@ func (c *Container) buildCluster() *redis.ClusterClient {

func (c *Container) buildSentinel() *redis.Client {
sentinelClient := redis.NewFailoverClient(&redis.FailoverOptions{
MasterName: c.config.MasterName,
SentinelAddrs: c.config.Addrs,
Password: c.config.Password,
DB: c.config.DB,
MaxRetries: c.config.MaxRetries,
DialTimeout: c.config.DialTimeout,
ReadTimeout: c.config.ReadTimeout,
WriteTimeout: c.config.WriteTimeout,
PoolSize: c.config.PoolSize,
MinIdleConns: c.config.MinIdleConns,
IdleTimeout: c.config.IdleTimeout,
TLSConfig: c.config.Authentication.TLSConfig(),
MasterName: c.config.MasterName,
SentinelAddrs: c.config.Addrs,
SentinelPassword: c.config.Password,
SentinelUsername: c.config.Username,
DB: c.config.DB,
MaxRetries: c.config.MaxRetries,
DialTimeout: c.config.DialTimeout,
ReadTimeout: c.config.ReadTimeout,
WriteTimeout: c.config.WriteTimeout,
PoolSize: c.config.PoolSize,
MinIdleConns: c.config.MinIdleConns,
IdleTimeout: c.config.IdleTimeout,
TLSConfig: c.config.Authentication.TLSConfig(),
})

for _, incpt := range c.config.interceptors {
Expand Down

0 comments on commit 61846bf

Please sign in to comment.