Skip to content
Commits on Jul 27, 2010
Commits on Jun 11, 2010
  1. @dolzenko
Commits on Apr 27, 2010
  1. @jeremy

    ActiveSupport::Cache refactoring

    Brian Durand committed with jeremy Apr 21, 2010
    All Caches
    * Add default options to initializer that will be sent to all read, write, fetch, exist?, increment, and decrement
    * Add support for the :expires_in option to fetch and write for all caches. Cache entries are stored with the create timestamp and a ttl so that expiration can be handled independently of the implementation.
    * Add support for a :namespace option. This can be used to set a global prefix for cache entries.
    * Deprecate expand_cache_key on ActiveSupport::Cache and move it to ActionController::Caching and ActionDispatch::Http::Cache since the logic in the method used some Rails specific environment variables and was only used by ActionPack classes. Not very DRY but there didn't seem to be a good shared spot and ActiveSupport really shouldn't be Rails specific.
    * Add support for :race_condition_ttl to fetch. This setting can prevent race conditions on fetch calls where several processes try to regenerate a recently expired entry at once.
    * Add support for :compress option to fetch and write which will compress any data over a configurable threshold.
    * Nil values can now be stored in the cache and are distinct from cache misses for fetch.
    * Easier API to create new implementations. Just need to implement the methods read_entry, write_entry, and delete_entry instead of overwriting existing methods.
    * Since all cache implementations support storing objects, update the docs to state that ActiveCache::Cache::Store implementations should store objects. Keys, however, must be strings since some implementations require that.
    * Increase test coverage.
    * Document methods which are provided as convenience but which may not be universally available.
    * MemoryStore can now safely be used as the cache for single server sites.
    * Make thread safe so that the default cache implementation used by Rails is thread safe. The overhead is minimal and it is still the fastest store available.
    * Provide :size initialization option indicating the maximum size of the cache in memory (defaults to 32Mb).
    * Add prune logic that removes the least recently used cache entries to keep the cache size from exceeding the max.
    * Deprecated SynchronizedMemoryStore since it isn't needed anymore.
    * Escape key values so they will work as file names on all file systems, be consistent, and case sensitive
    * Use a hash algorithm to segment the cache into sub directories so that a large cache doesn't exceed file system limits.
    * FileStore can be slow so implement the LocalCache strategy to cache reads for the duration of a request.
    * Add cleanup method to keep the disk from filling up with expired entries.
    * Fix increment and decrement to use file system locks so they are consistent between processes.
    * Support all keys. Previously keys with spaces in them would fail
    * Deprecate CompressedMemCacheStore since it isn't needed anymore (use :compress => true)
    [#4452 state:committed]
    Signed-off-by: Jeremy Kemper <>
Commits on Apr 19, 2010
  1. @jeremy
Commits on Oct 9, 2009
  1. @lifo
Commits on Sep 20, 2009
  1. @josevalim

    Instrumenting cache stores.

    josevalim committed Sep 20, 2009
Commits on Jul 1, 2009
  1. Original cache objects should not be immutable [#2860 state:resolved]

    Yehuda Katz + Carl Lerche committed Jul 1, 2009
    Signed-off-by: Yehuda Katz + Carl Lerche <>
Commits on Nov 1, 2008
  1. @lifo

    Merge with docrails

    lifo committed Nov 2, 2008
Commits on Sep 10, 2008
  1. @josh

    Removed monitor from MemoryStore and created a seperate threadsafe st…

    josh committed Sep 10, 2008
    …ore called SynchronizedMemoryStore
Commits on Aug 20, 2008
  1. @josh
Commits on Aug 19, 2008
  1. @josh
Commits on Aug 6, 2008
  1. @josh
  2. @josh
Commits on May 19, 2008
  1. @josevalim @lifo

    Add fragment_exist? and exist? methods to cache stores. [#203 state:r…

    josevalim committed with lifo May 16, 2008
    Signed-off-by: Pratik Naik <>
Commits on Apr 29, 2008
  1. @tobi
Commits on Jan 3, 2008
  1. @dhh

    Moved the caching stores from ActionController::Caching::Fragments::*…

    dhh committed Jan 3, 2008
    … to ActiveSupport::Cache::*. If you're explicitly referring to a store, like ActionController::Caching::Fragments::MemoryStore, you need to update that reference with ActiveSupport::Cache::MemoryStore [DHH] Deprecated ActionController::Base.fragment_cache_store for ActionController::Base.cache_store [DHH] All fragment cache keys are now by default prefixed with the 'views/' namespace [DHH] Added ActiveRecord::Base.cache_key to make it easier to cache Active Records in combination with the new ActiveSupport::Cache::* libraries [DHH] Added ActiveSupport::Gzip.decompress/compress(source) as an easy wrapper for Zlib [Tobias Luetke] Included MemCache-Client to make the improved ActiveSupport::Cache::MemCacheStore work out of the box [Bob Cottrell, Eric Hodel] Added config.cache_store to environment options to control the default cache store (default is FileStore if tmp/cache is present, otherwise MemoryStore is used) [DHH]
    git-svn-id: 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
Something went wrong with that request. Please try again.