* 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
		
			
				
	
	
		
			30 lines
		
	
	
		
			804 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			30 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
 |