summaryrefslogtreecommitdiff
path: root/lib/gitlab/etag_caching/store.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/gitlab/etag_caching/store.rb')
-rw-r--r--lib/gitlab/etag_caching/store.rb14
1 files changed, 8 insertions, 6 deletions
diff --git a/lib/gitlab/etag_caching/store.rb b/lib/gitlab/etag_caching/store.rb
index 0039fc01c8f..21172ff8d93 100644
--- a/lib/gitlab/etag_caching/store.rb
+++ b/lib/gitlab/etag_caching/store.rb
@@ -2,17 +2,17 @@ module Gitlab
module EtagCaching
class Store
EXPIRY_TIME = 20.minutes
- REDIS_NAMESPACE = 'etag:'.freeze
+ SHARED_STATE_NAMESPACE = 'etag:'.freeze
def get(key)
- Gitlab::Redis.with { |redis| redis.get(redis_key(key)) }
+ Gitlab::Redis::SharedState.with { |redis| redis.get(redis_shared_state_key(key)) }
end
def touch(key, only_if_missing: false)
etag = generate_etag
- Gitlab::Redis.with do |redis|
- redis.set(redis_key(key), etag, ex: EXPIRY_TIME, nx: only_if_missing)
+ Gitlab::Redis::SharedState.with do |redis|
+ redis.set(redis_shared_state_key(key), etag, ex: EXPIRY_TIME, nx: only_if_missing)
end
etag
@@ -24,8 +24,10 @@ module Gitlab
SecureRandom.hex
end
- def redis_key(key)
- "#{REDIS_NAMESPACE}#{key}"
+ def redis_shared_state_key(key)
+ raise 'Invalid key' if !Rails.env.production? && !Gitlab::EtagCaching::Router.match(key)
+
+ "#{SHARED_STATE_NAMESPACE}#{key}"
end
end
end