将不经常更新的内容写入缓存,降低数据库的频繁操作,降低服务器压力。
thinkphp提供了快速缓存方法(F)方法
F('data',$Data);//创建缓存
$Data = F('data');//读取缓存
F('data',NULL);//删除缓存
代码实例
//判断是否有缓存,如果有则读取缓存,否则则读取数据并创建缓存
if(F('Category_s')){
$bigCategory=F('Category_s');
}else{
$bigCategory = $this->category->order("sort asc")->where("parent_id=0")->select();
foreach ($bigCategory as $key => $value) {
$id = $value['id'];
$smallCategory = $this->category->order("sort asc")->where("parent_id='$id'")->select();
$bigCategory[$key]['children'] = $smallCategory;
}
F('Category_s',$bigCategory);
}
常规读取的时候都会从缓存读取,此时需要注意的是,当新增或者编辑类别的时候需要在完成时清除缓存,否则会导致前台不更新.
function addCategory()
{
$category = $this->category->where("parent_id=0")->select();
$this->assign('category', $category);
if (IS_POST) {
$mCategory=D('Category');
if(!$mCategory->create()){
$this->error($mCategory->getError(),U('index'));
}else{
F('Category_s',NULL);//这里将缓存清除
$mCategory->add();
$this->success('添加分类成功',U('index'));
}
} else {
$this->display();
}
}
编辑同理.
以上就是thinkphp的快速缓存简单的用法.
网友评论