Redis stores for Rack::Cache
redis-rack-cache
provides a Redis backed store for Rack::Cache, an HTTP cache. See the main redis-store readme for general guidelines.
NOTE: This gem is necessary in addition to
redis-rails if you use
Redis to store the Rails cache. redis-rails
does not pull in this gem
by default since not all applications use Rack::Cache
as their HTTP
cache.
Installation
# Gemfile
gem 'redis-rack-cache'
Usage
In a Rails app, you can configure your Rack::Cache
stores like this:
# config/environments/production.rb
Rails.application.configure do
config.action_dispatch.rack_cache = {
metastore: "#{Rails.credentials.redis_url}/1/rack_cache_metastore",
entitystore: "#{Rails.credentials.redis_url}/1/rack_cache_entitystore"
# NOTE: `:meta_store` and `:entity_store` are also supported.
}
end
For more complicated setups, like when using custom options, the following syntax can also be used:
# config/environments/production.rb
Rails.application.configure do
config.action_dispatch.rack_cache = {
meta_store: ::Rack::Cache::MetaStore::Redis.new("#{Rails.credentials.redis_url}/1/rack_cache_metastore", default_ttl: 10.days.to_i),
entity_store: ::Rack::Cache::EntityStore::Redis.new("#{Rails.credentials.redis_url}/1/rack_cache_entitystore", default_ttl: 120.days.to_i)
# NOTE: `:metastore` and `:entitystore` are also supported.
}
end
For standalone usage (in non-Rails apps):
# config.ru
require 'rack'
require 'rack/cache'
require 'redis-rack-cache'
use Rack::Cache,
metastore: 'redis://localhost:6379/0/metastore',
entitystore: 'redis://localhost:6380/0/entitystore'
Development
First, get the project set up on your local machine:
git clone https://github.com/redis-store/redis-rack-cache.git
cd redis-rack-cache
bundle install
You can run the following command to execute the test suite:
bundle exec rake test
If you are on Snow Leopard you have to run env ARCHFLAGS="-arch x86_64" bundle exec rake
Copyright
2009 - 2013 Luca Guidi - http://lucaguidi.com, released under the MIT license