feat: allow more control on redis client configuration
Cadoles/bouncer/pipeline/head This commit was not built
Details
Cadoles/bouncer/pipeline/head This commit was not built
Details
This commit is contained in:
parent
69501f6302
commit
11375e546f
|
@ -9,25 +9,35 @@ const (
|
||||||
)
|
)
|
||||||
|
|
||||||
type RedisConfig struct {
|
type RedisConfig struct {
|
||||||
Adresses InterpolatedStringSlice `yaml:"addresses"`
|
Adresses InterpolatedStringSlice `yaml:"addresses"`
|
||||||
Master InterpolatedString `yaml:"master"`
|
Master InterpolatedString `yaml:"master"`
|
||||||
ReadTimeout InterpolatedDuration `yaml:"readTimeout"`
|
ReadTimeout InterpolatedDuration `yaml:"readTimeout"`
|
||||||
WriteTimeout InterpolatedDuration `yaml:"writeTimeout"`
|
WriteTimeout InterpolatedDuration `yaml:"writeTimeout"`
|
||||||
DialTimeout InterpolatedDuration `yaml:"dialTimeout"`
|
DialTimeout InterpolatedDuration `yaml:"dialTimeout"`
|
||||||
LockMaxRetries InterpolatedInt `yaml:"lockMaxRetries"`
|
LockMaxRetries InterpolatedInt `yaml:"lockMaxRetries"`
|
||||||
MaxRetries InterpolatedInt `yaml:"maxRetries"`
|
RouteByLatency InterpolatedBool `yaml:"routeByLatency"`
|
||||||
PingInterval InterpolatedDuration `yaml:"pingInterval"`
|
ContextTimeoutEnabled InterpolatedBool `yaml:"contextTimeoutEnabled"`
|
||||||
|
MaxRetries InterpolatedInt `yaml:"maxRetries"`
|
||||||
|
PingInterval InterpolatedDuration `yaml:"pingInterval"`
|
||||||
|
PoolSize InterpolatedInt `yaml:"poolSize"`
|
||||||
|
PoolTimeout InterpolatedDuration `yaml:"poolTimeout"`
|
||||||
|
MinIdleConns InterpolatedInt `yaml:"minIdleConns"`
|
||||||
|
MaxIdleConns InterpolatedInt `yaml:"maxIdleConns"`
|
||||||
|
ConnMaxIdleTime InterpolatedDuration `yaml:"connMaxIdleTime"`
|
||||||
|
ConnMaxLifetime InterpolatedDuration `yaml:"connMaxLifeTime"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewDefaultRedisConfig() RedisConfig {
|
func NewDefaultRedisConfig() RedisConfig {
|
||||||
return RedisConfig{
|
return RedisConfig{
|
||||||
Adresses: InterpolatedStringSlice{"localhost:6379"},
|
Adresses: InterpolatedStringSlice{"localhost:6379"},
|
||||||
Master: "",
|
Master: "",
|
||||||
ReadTimeout: InterpolatedDuration(30 * time.Second),
|
ReadTimeout: InterpolatedDuration(30 * time.Second),
|
||||||
WriteTimeout: InterpolatedDuration(30 * time.Second),
|
WriteTimeout: InterpolatedDuration(30 * time.Second),
|
||||||
DialTimeout: InterpolatedDuration(30 * time.Second),
|
DialTimeout: InterpolatedDuration(30 * time.Second),
|
||||||
LockMaxRetries: 10,
|
LockMaxRetries: 10,
|
||||||
MaxRetries: 3,
|
MaxRetries: 3,
|
||||||
PingInterval: InterpolatedDuration(30 * time.Second),
|
PingInterval: InterpolatedDuration(30 * time.Second),
|
||||||
|
ContextTimeoutEnabled: true,
|
||||||
|
RouteByLatency: true,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -38,9 +38,15 @@ func newRedisClient(conf config.RedisConfig) redis.UniversalClient {
|
||||||
ReadTimeout: time.Duration(conf.ReadTimeout),
|
ReadTimeout: time.Duration(conf.ReadTimeout),
|
||||||
WriteTimeout: time.Duration(conf.WriteTimeout),
|
WriteTimeout: time.Duration(conf.WriteTimeout),
|
||||||
DialTimeout: time.Duration(conf.DialTimeout),
|
DialTimeout: time.Duration(conf.DialTimeout),
|
||||||
RouteByLatency: true,
|
RouteByLatency: bool(conf.RouteByLatency),
|
||||||
ContextTimeoutEnabled: true,
|
ContextTimeoutEnabled: bool(conf.ContextTimeoutEnabled),
|
||||||
MaxRetries: int(conf.MaxRetries),
|
MaxRetries: int(conf.MaxRetries),
|
||||||
|
PoolSize: int(conf.PoolSize),
|
||||||
|
PoolTimeout: time.Duration(conf.PoolTimeout),
|
||||||
|
MinIdleConns: int(conf.MinIdleConns),
|
||||||
|
MaxIdleConns: int(conf.MaxIdleConns),
|
||||||
|
ConnMaxIdleTime: time.Duration(conf.ConnMaxIdleTime),
|
||||||
|
ConnMaxLifetime: time.Duration(conf.ConnMaxLifetime),
|
||||||
})
|
})
|
||||||
|
|
||||||
go func() {
|
go func() {
|
||||||
|
|
Loading…
Reference in New Issue