Browse Source

Set config.cache_store in environments file. (#3219)

* Set config.cache_store in application.rb

* Set config.cache_store in environments.

* fix code format.
closed-social-glitch-2
Clworld 6 years ago
committed by Eugen Rochko
parent
commit
df92f010ad
4 changed files with 22 additions and 16 deletions
  1. +2
    -0
      config/application.rb
  2. +3
    -0
      config/environments/production.rb
  3. +0
    -16
      config/initializers/redis.rb
  4. +17
    -0
      lib/mastodon/redis_config.rb

+ 2
- 0
config/application.rb View File

@ -13,6 +13,8 @@ require_relative '../lib/mastodon/version'
Dotenv::Railtie.load
require_relative '../lib/mastodon/redis_config'
module Mastodon
class Application < Rails::Application
# Settings in config/environments/* take precedence over those specified here.

+ 3
- 0
config/environments/production.rb View File

@ -50,6 +50,9 @@ Rails.application.configure do
# Use a different logger for distributed setups.
# config.logger = ActiveSupport::TaggedLogging.new(SyslogLogger.new)
# Use a different cache store in production.
config.cache_store = :redis_store, ENV['REDIS_URL'], REDIS_CACHE_PARAMS
# Enable serving of images, stylesheets, and JavaScripts from an asset server.
# config.action_controller.asset_host = 'http://assets.example.com'

+ 0
- 16
config/initializers/redis.rb View File

@ -1,30 +1,14 @@
# 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

+ 17
- 0
lib/mastodon/redis_config.rb View File

@ -0,0 +1,17 @@
# 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
namespace = ENV.fetch('REDIS_NAMESPACE') { nil }
cache_namespace = namespace ? namespace + '_cache' : 'cache'
REDIS_CACHE_PARAMS = {
expires_in: 10.minutes,
namespace: cache_namespace,
}.freeze

Loading…
Cancel
Save