Use Gitlab::Redis::SharedState in Importers
GitLab offers the flexibility of configuring multiple instances of Redis servers, each serving a distinct purpose.
Using multiple Redis servers allows system administrators to fine-tune each instance to its specific purpose. For instance, the Redis server dedicated to caching can be configured to use in-memory storage with an LRU cache. This setup deletes the least-used cache items when memory limits are reached, no matter the expiration time of the cache key.
Problem
Currently, all the importers that use the class Gitlab::Cache::Import::Caching
are saving the keys in the Redis dedicated for caching which is a problem because in most cases we are saving information that can't be deleted until the import process finishes.
Proposed solution
Update Gitlab::Cache::Import::Caching
to use Redis SharedState.
Remember that we can't simply change the cache store to SharedState as in-flight migration will have their cache stored in the Cache store.