class ActionDispatch::Session::CacheStore

By default, the :expires_in option of the cache is used.
* expire_after - The length of time a session will be stored before automatically expiring.
* cache - The cache to use. If it is not specified, Rails.cache will be used.
==== Options
of time.
if you don’t store critical data in your sessions and you don’t need them to live for extended periods
A session store that uses an ActiveSupport::Cache::Store to store the sessions. This store is most useful

def cache_key(sid)

Turn the session id into a cache key.
def cache_key(sid)
  "_session_id:#{sid}"
end

def delete_session(env, sid, options)

Remove a session from the cache.
def delete_session(env, sid, options)
  @cache.delete(cache_key(sid))
  generate_sid
end

def find_session(env, sid)

Get a session from the cache.
def find_session(env, sid)
  unless sid and session = @cache.read(cache_key(sid))
    sid, session = generate_sid, {}
  end
  [sid, session]
end

def initialize(app, options = {})

def initialize(app, options = {})
  @cache = options[:cache] || Rails.cache
  options[:expire_after] ||= @cache.options[:expires_in]
  super
end

def write_session(env, sid, session, options)

Set a session in the cache.
def write_session(env, sid, session, options)
  key = cache_key(sid)
  if session
    @cache.write(key, session, :expires_in => options[:expire_after])
  else
    @cache.delete(key)
  end
  sid
end