今天在项目中用到了插件cache_fu,这是一个基于memcached_client的缓存处理插件,刚开始的时候不知道怎么用,直接就到github下面clone到了vender/plugins下面了,接下来就不知道该做什么了,说白了就是没用过这个东西,不知道具体怎么使用,前面说了,这事一个基于memcached_client的插件,所以在安装前要确保你的项目里已经安装了这个gems,如果你不知道你是否安装了这个gems,那你可以到你的Gemfile(rails3.0)文件里面去看一下是否该项目已经绑定了这个gems,如果没有,那你就在Gemfile里面绑定.然后bundle install,之后再进行安装cache_fu,注意这个时候要用plugin的形式安装,因为你在用plugin形式安装的时候,这个插件会检查你的项目的plugins里面,scripts里面和你的config里面是否以及那个含有了相关memcached的配置文件,如果发现已经存在了,那么在安装过程中会报告给你共有多少个错误,但是具体是什么原因导致的错我并没有提示,后来经过看它的install.rb才发现,在安装的时候它会去检查上面说的三个文件夹内是否含有memcached的相关的配置文件,如果没有的话,它会自动创建相关的文件,这个时候你就会在config下面看见了一个memcached.yml的文件了,安装插件的命令: rails plugin install https://github.com/kreetitech/cache_fu.git。
关于cache_fu的用法:
class Category < ActiveRecord::Base
acts_as_cached :ttl => 30.minutes #给这个model设置缓存时间为30分钟
保存数据以后让缓存失效
after_save :expire_cache
def cached_children(apps_count=0) #将该条件查询出的数据计入缓存,时间为30分钟
Category.caches(:all_children_parent_state,
:ttl=>30.minutes,
:withs => [self.id,1,apps_count])
end
def parent
if self.parent_id && self.parent_id > 0
Category.get_cache(self.parent_id) #利用id加载数据到缓存
else
self
end
end
end