在清除memcached中的缓存时保留会话

我在Rails中使用memcached / dalli进行缓存。 我也使用dalli_store作为我的会话存储。

问题是,当我清除视图缓存时,用户将自动退出我的系统。 我认为这是因为memcached中的所有数据都被清除了,所以会话数据丢失了。

有没有办法避免这种情况?


最后,我使用Redis作为会话存储。

gem 'redis-rails'

并在会话存储类型中指定它:

AppEx::Application.config.session_store :redis_store,

然后,我可以使用Memcached作为纯粹的缓存并清除它,而不会影响用户登录状态。

这也很好,因为当使用Memcached时,缓存满了时用户会被踢出。 现在用户会话持续时间更长。


Rails.cache.clear清除所有缓存(不可能指定元素)。 如果你想清除缓存中的特定元素,你应该使用Rails.cache.delete(key) (如果你想在某些情况下删除某些条件,请勾选一些条件)


为什么你要再次清除缓存? 如果要从缓存中逐出某些陈旧的数据并保持会话,则可以在高速缓存级别设置驱逐属性。 我不知道memcached是否有不同的驱逐选项可用。

链接地址: http://www.djcxy.com/p/60569.html

上一篇: Preserve session when clearing cache in memcached

下一篇: Most Efficient Way Of Clearing Cache Using ASP.NET