Gem Cache Digests 最大化緩存策略

xdite · 2012年09月02日 · 最后由 hooopo 回复于 2012年09月12日 · 5044 次阅读

http://blog.xdite.net/posts/2012/09/02/cache-digest-new-strategy/

這是由 @dhh 最新釋出 (8/13) 的 gem: cache_digests 解析文章。

上禮拜出國前腦袋就打好這篇文章的草稿了,只是沒有時間動手寫下來....

切入的點從 new basecamp 的提速改版講到 russian doll cache strategy,再講到 cache invalid 會遇到的問題....

原来他们的 Fragment Caching 是这么用的,有意思

收藏,上班时候看

感谢分享

好文啊,本来看过这个 gem 了,但是没去找前因后果,强推。

是说用这个就可以不操心缓存过期的问题了?

不知道 ruby-china 的缓存改成这样应该能提升不少响应速度吧,50ms 以内估记

这个解决办法来得赞啊 http://www.broadcastingadam.com/2012/07/advanced_caching_part_2-using_strategies/ 上有介绍用 git commit 的 hash key 解决代码更新后 cache 的问题

@xdite 对于修改 erb 产生的缓存无效问题,在部署后修改RAILS_APP_VERSION环境变量就行了。 比如设置export RAILS_APP_VERSION=zzz,那么生成的缓存 key 格式就如:views/zzz/posts/1-20120823222。所以部署后修改这个变量,缓存会自动过期。

#8 楼 @camel 這個 rails2.3支持麼?另外這個是不是只有用他的 Helper 生成才有效果呢?

#8 楼 @camel 查過了,2.3 是支持的 貌似我們直接用 Rails.cache.write(key, value) 的是不會自動加這個的。

#10 楼 @gene_wu Rails.cache.write(key, value) 不会添加 RAILS_APP_VERSION,这个对 erb 中的 fragment cache 有效。

#8 楼 @camel 这种的话,会引起大片的 cache 失效,网站访问量大的话会出现瞬间压力峰值。partial digest 这样的做法应该是最“友好”的方法。

难道大家不觉得用正则在页面里匹配 render 方法和在注释里声明依赖这种做法很恶心?

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