首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rails 3缓存问题

Rails 3缓存问题
EN

Stack Overflow用户
提问于 2012-03-07 17:38:49
回答 1查看 725关注 0票数 0

假设我想使用dalli存储来缓存(视图的片段)。这是否意味着这样做也会将memcache用于可能的DB缓存?

代码语言:javascript
复制
Rails.cache.fetch("something") { smth }

另外,如果我这样做:

代码语言:javascript
复制
Author.all

Rails控制台将显示它正在查询数据库,但是如果我再次运行Author.all,它将显示结果是从缓存中检索的。什么时候应该显式地使用Rails.cache,什么时候应该依靠ActiveRecord来进行缓存?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-03-07 18:27:51

获取和读取操作从当前配置的缓存存储中获取项,例如,如果缓存存储是:file_store,则从文件系统获取项;如果缓存存储是:mem_cache_store,则从Memcached服务器获取项。因此,如果您希望使用Memcached进行片段缓存,则必须相应地配置cache_store:

代码语言:javascript
复制
ActionController::Base.cache_store = :mem_cache_store, "cache-1.example.com"

如果有涉及许多查询的大型复杂视图,而这些查询很少更改或更改很慢,则推荐使用fragment caching。帧缓存是完全静态页面(快速,但固定)和动态页面(缓慢,但可变)之间的一种很好的权衡。如果您需要缓存页面的某一部分,而不是整个页面,就像Ryan Bates在他的Railscast about fragment caching中所说的那样,片段缓存是可行的。

页面和动作缓存甚至更好,它们对于加速页面的性能非常有用,但如果它包含用户特定的内容,就会出现问题。在这种情况下,可以使用dynamic page caching。Stackoverflow使用类似的技术。

SQL Caching仅在单个操作的持续时间内持续。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9598935

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档