From 5c1f70b5c577123cc42e073dea6a8f72e27818f8 Mon Sep 17 00:00:00 2001 From: beatrix Date: Sun, 7 May 2017 13:42:32 -0400 Subject: namespace redis usage (#2869) * add redis-namespace gem * namespace redis usage * refactor redis namespace code to be less intrusive previously : would be prepended to keys when the REDIS_NAMESPACE env var was not set now if it is not set the namespacing functions are not used at all, which should prevent disruptions when instances update. * fix redis namespace variable style in streaming js * remove trailing space * final redis namespace style fix --- config/initializers/redis.rb | 17 ++++++++++++----- config/initializers/sidekiq.rb | 11 +++++++++-- 2 files changed, 21 insertions(+), 7 deletions(-) (limited to 'config') diff --git a/config/initializers/redis.rb b/config/initializers/redis.rb index dd7fa112e..63fc42557 100644 --- a/config/initializers/redis.rb +++ b/config/initializers/redis.rb @@ -9,14 +9,21 @@ if ENV['REDIS_URL'].blank? ENV['REDIS_URL'] = "redis://#{password.blank? ? '' : ":#{password}@"}#{host}:#{port}/#{db}" end -Redis.current = Redis.new( +redis_connection = Redis.new( url: ENV['REDIS_URL'], driver: :hiredis ) +cache_params = { expires_in: 10.minutes } + +namespace = ENV.fetch('REDIS_NAMESPACE') { nil } +if namespace + Redis.current = Redis::Namespace.new(namespace, :redis => redis_connection) + cache_params[:namespace] = namespace + '_cache' +else + Redis.current = redis_connection +end + Rails.application.configure do - config.cache_store = :redis_store, ENV['REDIS_URL'], { - namespace: 'cache', - expires_in: 10.minutes, - } + config.cache_store = :redis_store, ENV['REDIS_URL'], cache_params end diff --git a/config/initializers/sidekiq.rb b/config/initializers/sidekiq.rb index 3d2e4741d..b70784d79 100644 --- a/config/initializers/sidekiq.rb +++ b/config/initializers/sidekiq.rb @@ -1,9 +1,16 @@ # frozen_string_literal: true +namespace = ENV.fetch('REDIS_NAMESPACE') { nil } +redis_params = { url: ENV['REDIS_URL'] } + +if namespace + redis_params [:namespace] = namespace +end + Sidekiq.configure_server do |config| - config.redis = { url: ENV['REDIS_URL'] } + config.redis = redis_params end Sidekiq.configure_client do |config| - config.redis = { url: ENV['REDIS_URL'] } + config.redis = redis_params end -- cgit