Action Dispatch Session CacheStore¶ ↑
使用 ActiveSupport::Cache::Store 来存储 session 的 session 存储。如果您不在 session 中存储关键数据,并且不需要它们长时间存在,那么这个存储将非常有用。
选项¶ ↑
-
cache- 要使用的缓存。如果未指定,则使用Rails.cache。 -
expire_after- session 在自动过期之前存储的时间长度。默认情况下,使用缓存的:expires_in选项。 -
check_collisions- 检查新生成的 session ID 是否已被使用。如果由于某种原因,128 位随机性被认为不足以避免冲突,则可以启用此选项以确保新生成的 ID 未被使用。默认情况下,设置为false以避免额外的缓存写入操作。
方法
- D
- F
- N
- W
类公共方法
new(app, options = {}) 链接
来源: 显示 | 在 GitHub 上
# File actionpack/lib/action_dispatch/middleware/session/cache_store.rb, line 27 def initialize(app, options = {}) @cache = options[:cache] || Rails.cache options[:expire_after] ||= @cache.options[:expires_in] @check_collisions = options[:check_collisions] || false super end
实例公共方法
delete_session(env, sid, options) 链接
从缓存中删除一个 session。
来源: 显示 | 在 GitHub 上
# File actionpack/lib/action_dispatch/middleware/session/cache_store.rb, line 54 def delete_session(env, sid, options) @cache.delete(cache_key(sid.private_id)) @cache.delete(cache_key(sid.public_id)) generate_sid end
find_session(env, sid) 链接
从缓存中获取一个 session。
来源: 显示 | 在 GitHub 上
# File actionpack/lib/action_dispatch/middleware/session/cache_store.rb, line 35 def find_session(env, sid) unless sid && (session = get_session_with_fallback(sid)) sid, session = generate_sid, {} end [sid, session] end
write_session(env, sid, session, options) 链接
在缓存中设置一个 session。
来源: 显示 | 在 GitHub 上
# File actionpack/lib/action_dispatch/middleware/session/cache_store.rb, line 43 def write_session(env, sid, session, options) key = cache_key(sid.private_id) if session @cache.write(key, session, expires_in: options[:expire_after]) else @cache.delete(key) end sid end