memcached安装使用

安装

wget http://cloud.github.com/downloads/saberma/saberma.github.com/memcached-1.4.4.tar.gz
tar vxf memcached*.tar.gz 
cd memcached*
#这一步有问题看下一节内容
sudo ./configure
sudo make && sudo make install

#测试安装结果,有问题看下一节内容
memcached -vv
#出现一堆的调试信息表示正常,CTRL+C退出

#安装ruby客户端memcached-client
sudo gem install memcache-client --no-ri --no-rdoc
#configurate时遇到错误则要安装libevent:
checking for libevent directory... configure: error: libevent is required.  You can get it from http://www.monkey.org/~provos/libevent/
#安装libevent
cd ..
wget http://www.monkey.org/~provos/libevent-1.4.12-stable.tar.gz
tar vxf libevent*.tar.gz
cd libevent*
./configure && sudo make && sudo make install
cd ../memcached*
#memcached -vv报以下错误:
#memcached: error while loading shared libraries: libevent-1.4.so.2: cannot open shared object file: No such file or directory
#执行以下语句
sudo ln -s /usr/local/lib/libevent-1.4.so.2 /lib/

启动

#分配20m内存
memcached -d -m 20 -l 127.0.0.1

测试客户端访问

irb
require 'rubygems'
require 'memcache'

m = MemCache.new '127.0.0.1'

m.set('key','result',5)
#应该可以看缓存结果

m.get('key')
#5秒后再看,应该返回nil
m.get('key')

在rails中使用

#一般用法
#fetch方法会先到memcached中获取数据,获取不到时才会执行User.all生成数据并写入缓存
@list = Rails.cache.fetch("user_list"){ User.all }
#设置缓存 30分钟后失效
@list = Rails.cache.fetch("user_list", :expires_in => 30.minutes){ User.all }

结合cache-money

cache-money是twitter.com开源的分布式缓存框架,功能强大
实现读取数据时插件自动写入缓存,数据更新删除更新缓存
默认使用id缓存,其他字段需要在model中指定要缓存的字段

#用户一般通过User.find_by_login('saberma')方式获取
class User < ActiveRecord::Base
  index :login
end

安装

sudo gem install nkallen-cache-money --no-ri --no-rdoc

cache-money指南

配置

#config/memcached.yml中的ttl用于设置默认过期时间(秒),默认为1周
#cache-money中设置的过期周期默认为1天,可通过在index方法后增加ttl参数自定义
class User < ActiveRecord::Base
  index :login, :ttl => 60.minutes
end

调试

#可以直接通过模型类获取索引信息
#多少个索引
User.indices.size
#第一个索引的过期周期
User.indices[0].ttl

统计

#stats查看命中率等
telnet 127.0.0.1 11211
stats
#查看内存块分配情况
stats slabs

参考资源

集思博客

<script type="text/javascript"> var disqus_url = &quot;http://saberma.me/rails/2009/11/03/memcached.html&quot;; var disqus_developer = 1; </script>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值