Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'lib/gitlab/redis/cache.rb')
-rw-r--r--lib/gitlab/redis/cache.rb40
1 files changed, 28 insertions, 12 deletions
diff --git a/lib/gitlab/redis/cache.rb b/lib/gitlab/redis/cache.rb
index ba3af3e7a6f..60944268f91 100644
--- a/lib/gitlab/redis/cache.rb
+++ b/lib/gitlab/redis/cache.rb
@@ -5,19 +5,35 @@ module Gitlab
class Cache < ::Gitlab::Redis::Wrapper
CACHE_NAMESPACE = 'cache:gitlab'
- # Full list of options:
- # https://api.rubyonrails.org/classes/ActiveSupport/Cache/RedisCacheStore.html#method-c-new
- def self.active_support_config
- {
- redis: pool,
- compress: Gitlab::Utils.to_boolean(ENV.fetch('ENABLE_REDIS_CACHE_COMPRESSION', '1')),
- namespace: CACHE_NAMESPACE,
- expires_in: default_ttl_seconds
- }
- end
+ class << self
+ # Full list of options:
+ # https://api.rubyonrails.org/classes/ActiveSupport/Cache/RedisCacheStore.html#method-c-new
+ def active_support_config
+ {
+ redis: pool,
+ compress: Gitlab::Utils.to_boolean(ENV.fetch('ENABLE_REDIS_CACHE_COMPRESSION', '1')),
+ namespace: CACHE_NAMESPACE,
+ expires_in: default_ttl_seconds
+ }
+ end
+
+ def default_ttl_seconds
+ ENV.fetch('GITLAB_RAILS_CACHE_DEFAULT_TTL_SECONDS', 8.hours).to_i
+ end
+
+ # Exposes redis for Peek adapter. To be removed after ClusterCache migration.
+ def multistore_redis
+ redis
+ end
+
+ private
+
+ def redis
+ primary_store = ::Redis.new(Gitlab::Redis::ClusterCache.params)
+ secondary_store = ::Redis.new(params)
- def self.default_ttl_seconds
- ENV.fetch('GITLAB_RAILS_CACHE_DEFAULT_TTL_SECONDS', 8.hours).to_i
+ MultiStore.new(primary_store, secondary_store, store_name)
+ end
end
end
end