redis:拨打 tcp [REDIS ADDRESS] connect:连接被拒绝
redis: dial tcp [REDIS ADDRESS] connect: connection refused
我在 docker 中使用 redigo。我有一个处理传入事件并使用 redis 进行速率限制的服务器。每 100k+ 个连接中就有一个出现以下错误:
redis: dial tcp IP ADDRESS: connect: connection refused
配置全部在 docker 中使用 docker-compose。我有哨兵向我发送这些错误,我想知道是否有任何 tweaks/settings 我可以对 remove/reduce 这个错误
我的 redigo 配置是
redis := &redis.Pool{
MaxActive: idleConnections,
MaxIdle: idleConnections,
Wait: true,
Dial: func() (redis.Conn, error) {
return redis.Dial("tcp", address, options...)
},
}
您可以使用某种指数退避重试拨号:
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
},
我在 docker 中使用 redigo。我有一个处理传入事件并使用 redis 进行速率限制的服务器。每 100k+ 个连接中就有一个出现以下错误:
redis: dial tcp IP ADDRESS: connect: connection refused
配置全部在 docker 中使用 docker-compose。我有哨兵向我发送这些错误,我想知道是否有任何 tweaks/settings 我可以对 remove/reduce 这个错误
我的 redigo 配置是
redis := &redis.Pool{
MaxActive: idleConnections,
MaxIdle: idleConnections,
Wait: true,
Dial: func() (redis.Conn, error) {
return redis.Dial("tcp", address, options...)
},
}
您可以使用某种指数退避重试拨号:
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
},