about summary refs log tree commit diff
path: root/config/initializers/redis.rb
diff options
context:
space:
mode:
authorbeatrix <beatrix.bitrot@gmail.com>2017-05-07 13:42:32 -0400
committerEugen Rochko <eugen@zeonfederated.com>2017-05-07 19:42:32 +0200
commit5c1f70b5c577123cc42e073dea6a8f72e27818f8 (patch)
tree1d7fe709a98f6d97ded8db4a020f80efe44b9e01 /config/initializers/redis.rb
parentc7848f54ffd67189e368e9d981565076dbb5e770 (diff)
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
Diffstat (limited to 'config/initializers/redis.rb')
-rw-r--r--config/initializers/redis.rb17
1 files changed, 12 insertions, 5 deletions
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