我正在尝试理解Rails中的缓存选项(以及一般的缓存)。
我很难将我的大脑包裹在像Rack :: Cache这样的选项和内置缓存选项(页面,动作,片段)之间。我会使用一个或另一个吗?或者它们是针对不同的东西吗?
感谢有关该主题的任何智慧!
答案 0 :(得分:3)
来自:http://rtomayko.github.com/rack-cache/faq
问:为什么要Rack :: Cache?为什么不使用Rails / Merb / FrameworkX的缓存 系统
Rack :: Cache采用基于标准的方法来提供缓存 与框架集成系统相比具有一些优势。它使用标准HTTP 标题(Expires,Cache-Control,Etag,Last-Modified等)来 确定缓存的内容/时间。设计应用程序来支持这些 标准HTTP机制提供了能够切换到的好处 将来不同的HTTP缓存实现。
此外,使用基于标准的缓存方法创建了一个 清楚地分离应用程序和缓存逻辑。该 应用程序只需要指定一组基本的信息 移动响应和有关如何以及何时缓存的所有决定 进入缓存层。
因此,如果需要,您可以使用Rails缓存或Rack :: Cache。他们的工作方式不同。使用对你来说有意义的任何东西。
您的决定可能基于想要使用HTTP标准标题(如上面显示的常见问题解答),或者基于您喜欢的语法等等......决定取决于应用和您个人的具体情况口味。
答案 1 :(得分:2)
Rack::Cache
将处理HTTP流量级别。
这使Rack::Cache
成为rails页面级缓存的合适替代品(虽然我不知道这是否是好主意) - 但它不能用作片段缓存的替代。
如果需要大量处理时间/功能来创建片段和,您的片段会在无效之前重复使用几次,您肯定会想要片段缓存。 (通常的缓存权衡。)我可以轻松地对没有片段缓存无用的网站设计进行成像,以及片段缓存不必要的开销。大多数网站都会落在中间位置。
因此,如果您希望使用Rack::Cache
,我确信它对它能做的事情非常有用,但它不能取代片段缓存。