f88ff75a8d
* 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
29 lines
804 B
Ruby
29 lines
804 B
Ruby
# frozen_string_literal: true
|
|
|
|
if ENV['REDIS_URL'].blank?
|
|
password = ENV.fetch('REDIS_PASSWORD') { '' }
|
|
host = ENV.fetch('REDIS_HOST') { 'localhost' }
|
|
port = ENV.fetch('REDIS_PORT') { 6379 }
|
|
db = ENV.fetch('REDIS_DB') { 0 }
|
|
|
|
ENV['REDIS_URL'] = "redis://#{password.blank? ? '' : ":#{password}@"}#{host}:#{port}/#{db}"
|
|
end
|
|
|
|
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'], cache_params
|
|
end
|