cache_store=
cache_store=(store_option)Defines the storage option for cached fragments
3Notes
Built-in cache stores
Built-in cache stores are:
- +:file_store+ (ActiveSupport::Cache::FileStore)
- +:memory_store+ (ActiveSupport::Cache::MemoryStore)
- +:drb_store+ (ActiveSupport::Cache::DRbStore)
- +:mem_cache_store+ (ActiveSupport::Cache::MemCacheStore)
- +:compressed_mem_cache_store+ (ActiveSupport::Cache::CompressedMemCacheStore)
To use the memcached gem
If you use the mem_cache_store it will use "memcache-client" to talk to the actual cache. memcache-client is a pure Ruby library that is bundled with rails. There is a Ruby/C library called "memcached" that uses native bindings to talk to memcache, and it is reportedly (http://blog.evanweaver.com/files/doc/fauna/memcached/files/README.html) up to a 100 times faster than memcache-client. To use that instead,
# in shell
$ sudo gem install memcached --no-rdoc --no-ri
# in config/production.rb
require 'memcached'
config.action_controller.cache_store =
:mem_cache_store, Memcached::Rails.new("localhost:11211")
This feature (to pass a configured MemCache-like object to +cache_store=+) is available since rails 2.3.3 and will hopefully be documented in 2.3.5.
Adding initialization parameters for the relevant cache store
To configure caching of f.ex. a :mem_cache_store you can pass additional parameters just after the cache type symbol:
ActionController::Base.cache_store = \\
:mem_cache_store, 'a.example.org:11211', 'b.example.org:11211'
all parameters after the cache type symbol will be passed on to the corresponding cache store constructor.