Thinkphp - 缓存的使用 (Memcache)

1.如何使用

首先配置文件里要加上这些 

 

 'DATA_CACHE_TYPE' => 'Memcache',  
 'MEMCACHE_HOST'  => 'tcp://127.0.0.1:11211',    
 'DATA_CACHE_TIME' => '10',  

指定使用缓存是memcache, 这里设置的缓存过期时间是10秒,实际根据项目需要。

 

然后就是控制器里。首先来看看没加缓存之前:

 

$msgsmodel=M('message');
$count = $msgsmodel->where("content!=''")->count();
$Page  = new \Think\Page($count,5);
$show  = $Page->show();   
$list = $msgsmodel->where("content!=''")->order('mid desc')->limit($Page->firstRow.','.$Page->listRows)->select();
foreach($list as $key => $value){
    $list[$key]['addtime'] = date("Y-m-d H:i:s",$value['addtime']);
}
$this->assign('list',$list);
$this->assign('page',$show);
$this->display('/index');
exit();

下面是加入缓存功能后的修改:

 

$Cache = new \Think\Cache\Driver\Memcache();
$cahce_key=md5('index_datas');
$cache_key_page=md5('index_shows');
if(!$Cache->get($cahce_key)){
    $count = $msgsmodel->where("content!=''")->count();
    $Page  = new \Think\Page($count,5);
    $show  = $Page->show();   
    $list = $msgsmodel->where("content!=''")->order('mid desc')->limit($Page->firstRow.','.$Page->listRows)->select();
    foreach($list as $key => $value){
    $list[$key]['addtime'] = date("Y-m-d H:i:s",$value['addtime']);
    }
    $Cache->add($cahce_key,serialize($list),0,10);
    $Cache->add($cache_key_page,serialize($show),0,10);
    //echo 'db';
}else{
    //echo 'mem';
    $list=unserialize($Cache->get($cahce_key));
    $show=unserialize($Cache->get($cache_key_page));
}
$this->assign('list',$list);
$this->assign('page',$show);
$this->display('/index');

首先获取实例是必须的

$Cache = new \Think\Cache\Driver\Memcache();

然后帮缓存起个名字

$cahce_key=md5('index_datas');

$cache_key_page=md5('index_shows');

再就是判断是否拿到缓存,拿不到就取数据库。

$list=unserialize($Cache->get($cahce_key));

就是这样简单!

 

2.参考

http://blog.csdn.net/zhao0829wang/article/details/44537975

http://blog.csdn.net/pingd/article/details/50241239

 

 

3.memcahce  启动(winddows)

 

memcached.exe -d start
memcached.exe -d install

http://blog.csdn.net/yuhui_fish/article/details/7762299

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值