Sha256: 27ba94ce32a1e440b686a3f093cccaea3e80845b16ff1f7bea23ebde597c6ae3

Contents?: true

Size: 1.53 KB

Versions: 2

Compression:

Stored size: 1.53 KB

Contents

= CachedModel

Rubyforge Project:

http://rubyforge.org/projects/rctools/

== About

CachedModel stores Rails ActiveRecord objects in memcache allowing for very
fast retrievals.  CachedModel uses the ActiveRecord::Locking to ensure that
you don't perform multiple updates.

== Using CachedModel

First, install the cached_model gem:

  $ sudo gem install cached_model

Then set up memcache-client:

  $ tail -n 20  config/environments/production.rb
  memcache_options = {
    :c_threshold => 10_000,
    :compression => true,
    :debug => false,
    :namespace => 'my_rails_app',
    :readonly => false,
    :urlencode => false
  }
  
  CACHE = MemCache.new memcache_options
  CACHE.servers = 'localhost:11211'
  
  session_options = {
    :database_manager => CGI::Session::MemCacheStore,
    :cache => CACHE,
    :session_domain => 'trackmap.robotcoop.com'
  }
  
  ActionController::CgiRequest::DEFAULT_SESSION_OPTIONS.update session_options

You will need separate namespaces for production and development, if using
memcache on the same machine.

Note that using memcache with tests will cause test failures, so set your
memcache to be readonly for the test environment.

Then make Rails load the gem:

  $ tail -n 4 config/environment.rb 
  # Include your application configuration below
  
  require_gem 'cached_model'

Then edit your ActiveRecord model to inherit from CachedModel instead of
ActiveRecord::Base:

  $ head -n 8 app/models/photo.rb
  ##
  # A Photo from Flickr.
  
  class Photo < CachedModel
  
    belongs_to :point
    belongs_to :route

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
cached_model-1.0.0 README
cached_model-1.0.1 README