summaryrefslogtreecommitdiff
path: root/config
diff options
context:
space:
mode:
authorJacob Vosmaer <contact@jacobvosmaer.nl>2014-08-08 17:56:01 +0200
committerJacob Vosmaer <contact@jacobvosmaer.nl>2014-08-26 13:44:39 +0200
commit9122823afca108ffc7019261c7e8f255d640066b (patch)
treecb7c95ea3483ad9f7262c87d4e3ebc869a4b1f01 /config
parent2c7e08745b8ed4361b9560439a721e5647973ad7 (diff)
downloadgitlab-ce-9122823afca108ffc7019261c7e8f255d640066b.tar.gz
Configure Redis cache for all environments
Also add support for connecting to Redis with Unix sockets.
Diffstat (limited to 'config')
-rw-r--r--config/environments/production.rb10
-rw-r--r--config/initializers/7_cache_settings.rb18
2 files changed, 18 insertions, 10 deletions
diff --git a/config/environments/production.rb b/config/environments/production.rb
index 2450d5719eb..78bf543402b 100644
--- a/config/environments/production.rb
+++ b/config/environments/production.rb
@@ -45,16 +45,6 @@ Gitlab::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_file = Rails.root.join('config', 'resque.yml')
-
- resque_url = if File.exists?(config_file)
- YAML.load_file(config_file)[Rails.env]
- else
- "redis://localhost:6379"
- end
- config.cache_store = :redis_store, resque_url, {namespace: 'cache:gitlab'}
-
# Enable serving of images, stylesheets, and JavaScripts from an asset server
# config.action_controller.asset_host = "http://assets.example.com"
diff --git a/config/initializers/7_cache_settings.rb b/config/initializers/7_cache_settings.rb
new file mode 100644
index 00000000000..7dbaf2e1c9e
--- /dev/null
+++ b/config/initializers/7_cache_settings.rb
@@ -0,0 +1,18 @@
+redis_config_file = Rails.root.join('config', 'resque.yml')
+
+resque_url = if File.exists?(redis_config_file)
+ YAML.load_file(redis_config_file)[Rails.env]
+ else
+ "redis://localhost:6379"
+ end
+
+# Redis::Store does not handle Unix sockets well, so let's do it for them
+redis_config_hash = Redis::Store::Factory.extract_host_options_from_uri(resque_url)
+redis_uri = URI.parse(resque_url)
+if redis_uri.scheme == 'unix'
+ redis_config_hash[:path] = redis_uri.path
+end
+
+redis_config_hash[:namespace] = 'cache:gitlab'
+
+Gitlab::Application.config.cache_store = :redis_store, redis_config_hash