about summary refs log tree commit diff
path: root/config/initializers/redis.rb
blob: 63fc425573af358e0f6175f3cec3917b3aff473b (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# 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