`

关于cache_fu插件的介绍和应用

阅读更多

      今天在项目中用到了插件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

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics