欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  资讯频道

最新Rails缓存插件 cache-money

程序员文章站 2022-03-23 13:45:03
...
在过去的几年中Twitter一直被视为Rails应用的代表作,在一段时间内还曾因为网站性能不佳,常被拿来作为"Rails无法扩展的"典型例子,但是现在Twitter的性能问题已经解决,它开始回馈一些解决方案给Rails社区了。

cache-money是Twitter最近贡献一个缓存插件,和常见的cache plugin不同,它提供的是write-through的缓存模式:在ActiveRecord对象更新的时候不是将缓存中的数据清除,而是直接将更新的内容写入到缓存中去。可以参考这篇文章 http://magicscalingsprinkles.wordpress.com/2008/11/24/write-through-cacheing-is-an-essential-part-of-a-healthy-scaling-strategy/
cache-money有许多很棒的特性:
1. 缓存自动清除机制(利用after_save/after_destroy)
2. 支持事务,由于rails的Active Record没有提供after_commit机制,目前常见的缓存插件在高并发下会出现缓存更新竞争冲突,而这个特性对于解决这个问题会很有帮助:
CACHE.transaction do
  CACHE.set(k, v)
  raise
end

3. 支持非主键的缓存,对于一些常用的非主键查找,比如根据用户名找用户,很有帮助:
class User
  index :name
end

User.find_by_name "javaeye"


更多的特性请参考这篇博客:http://magicscalingsprinkles.wordpress.com/2008/12/11/introducing-cache-money/
目前它处于RC版本,你可以从github上check out最新代码:
http://github.com/nkallen/cache-money/tree/master