Edge Rails 的更新: 扩展缓存应用的规模

Posted by yudi
on Monday, December 17


上个礼拜我指出一项新的 ActiveRecord 缓存特性 。这项特性帮助你将一个model全部的 ActiveRecord 调用存入缓存:

1
2
3
4
User.cache do
  me = User.find(1)   # DB hit
  again = User.find(1)   # Cache hit
end

非常棒!但是它只对包含了缓存代码块的model提供缓存服务。如果您有几行会访问一连串model的代码,则需要写一个全新的缓存声明并且置顶:

1
2
3
4
5
6
7
8
9
10
11
ActiveRecord::Base.cache do

  # DB hits
  me = User.find(1)
  companies = Company.find(:all)

  # Cache hits
  me = User.find(1)
  companies = Company.find(:all)

end

那么所有存在于以上代码块以内的model动态存取语句都会被记录到缓存里。

原文作者是 Ryan Daigle, 请访问他的博客
本片译文的原文地址:http://ryandaigle.com/articles/2007/2/21/what-s-new-in-edge-rails-expanded-caching-scope

Comments

Leave a response