我正在使用redigo和docker一起使用。我有一个处理传入事件的服务器,并使用redis进行速率限制。每100k +连接中就有一个,或者我得到以下错误:
redis: dial tcp IP ADDRESS: connect: connection refused
使用docker-compose配置全部在docker内部。我有哨兵发给我这些错误,我想知道是否有任何调整/设置我可以做删除/减少此错误
我的redigo配置
redis := &redis.Pool{
MaxActive: idleConnections,
MaxIdle: idleConnections,
Wait: true,
Dial: func() (redis.Conn, error) {
return redis.Dial("tcp", address, options...)
},
}
答案 0 :(得分:1)
您可以使用某种指数退避重试拨号:
Dial: func() (redis.Conn, error) {
c, err := redis.Dial("tcp", address, options...)
for retries := 0; err != nil && retries < 5; retries++ {
time.Sleep((50 << retries) * time.Millisecond)
c, err = redis.Dial("tcp", address, options...)
}
return c, err
},