Update registry go-redis package to v9 and use improved go-redis retry strategy
Context
Following the analysis in !823, It was noted that there is:
- an opportunity to improve the retry logic from the container registry to redis by updating our go-redis retry strategies.
- A bug in the current go-redis library
Problem
As we rely more on the redis cache to reduce the response latency of the container registry, we need to also make sure that that our communication with redis is reliable in the face of networking drops or broken connections to continue reduce unnecessary calls to the db.
Suggested Optimizations
-
go-redis V9
introduces[maxBadConnRetries](https://github.com/go-redis/redis/pull/2054)
as a way to limit the amount of bad connections used for retries in the pool, before establishing a new connections -
go-redis V9
also introduces the fix for noisy logs : gitlab-com/gl-infra/scalability#2076 (closed) - Depending on which implementation of UniversalClient we use here we may need to explicitly set
MaxRetries
, as some client (e.g redis cluster client) default's to no retries (ref) if not explicitly specified.
Edited by Suleimi Ahmed