Rails 为什么要嵌套Cache

tumayun · 发布于 2012年10月22日 · 最后由 Rei 回复于 2012年10月23日 · 2175 次阅读
967

今天在看 @xdite 的文章Cache Digests 最大化緩存策略的时候, 有个疑问,Russian Doll cache strategy 的嵌套Cache 模式有什么好处? 为什么要嵌套Cache,这样不会太费memcache了么?

Russian Doll cache strategy

Russian Doll cache strategy

共收到 10 条回复
967

没人看。。。

96

因为第二层的缓存是用来共享的

172

因为一个大的cache如果expire,或者不能命中,还有机会用小的cache去命中它,这样就有尽可能更高的cache命中率

8

因为大粒度的cache提升的性能多,但是容易失效。小粒度的cache灵活,不容易失效,效果不显著。

这样嵌套是可以获得两者的优点,就是苦了memcache,但是memcache就是来干这个的啊。。浪费就浪费吧

77

另外,memcached 还有一个特性,可以设置最大占用内存,当到达这个数值时,memcached 会自动将最长时间没有用的缓存清除

967

@hooopo 你说的这个大粒度的cache容易失效,这个是正常过期还是不能命中? 还有,为什么会有未过期不能命中的问题?是memcache自身的问题还是什么? 这方面关注的不多,谢谢解惑,呵呵

8

#6楼 @tumayun 未过期不能命中?没理解你说的过期和命中分别代表什么

967

@hooopo 你说的大粒度的cache容易失效,这个失效是指正常过期还是说没有命中? 未过期不能命中,就是说cache没有expired,但是却没有命中

85

大块cache包含内容多,内容修改了,会expire cache。

1

#8楼 @tumayun 大粒度 cache,只要有一项内容变了就整个过期,其他没变化的内容都要重新载入渲染。

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册