Provide a way of using Redis for Rails cache

This commit is contained in:
Karina Kwiatek 2023-02-11 23:51:58 +01:00 committed by Andreas Nedbal
parent 22013791c3
commit 42a78cd286
3 changed files with 15 additions and 1 deletions

View File

@ -60,6 +60,7 @@ gem "sanitize"
gem "twitter-text" gem "twitter-text"
gem "connection_pool"
gem "redis" gem "redis"
gem "fake_email_validator" gem "fake_email_validator"

View File

@ -489,6 +489,7 @@ DEPENDENCIES
carrierwave (~> 2.0) carrierwave (~> 2.0)
carrierwave_backgrounder! carrierwave_backgrounder!
colorize colorize
connection_pool
cssbundling-rails (~> 1.1) cssbundling-rails (~> 1.1)
database_cleaner database_cleaner
devise (~> 4.0) devise (~> 4.0)

View File

@ -54,7 +54,19 @@ Rails.application.configure do
config.lograge.enabled = true config.lograge.enabled = true
# Use a different cache store in production. # Use a different cache store in production.
# config.cache_store = :mem_cache_store cache_redis_url = ENV.fetch("CACHE_REDIS_URL") { nil }
if cache_redis_url.present?
config.cache_store = :redis_cache_store, {
url: cache_redis_url,
pool_size: ENV.fetch("RAILS_MAX_THREADS") { 5 }.to_i,
pool_timeout: ENV.fetch("CACHE_REDIS_TIMEOUT") { 5 },
error_handler: -> (method:, returning:, exception:) {
# Report errors to Sentry as warnings
Sentry.capture_exception exception, level: 'warning',
tags: { method: method, returning: returning }
},
}
end
# Use a real queuing backend for Active Job (and separate queues per environment) # Use a real queuing backend for Active Job (and separate queues per environment)
# config.active_job.queue_adapter = :resque # config.active_job.queue_adapter = :resque