周大胖子 发表于 2018-9-29 16:34:16

老莫粗谈 PHP缓存机制

本帖最后由 周大胖子 于 2018-11-29 18:32 编辑

一:先谈谈 缓存的意义
缓存是干嘛玩意的呢:胖爷是这样理解的,总不能啥都去查表吧,当然是去查缓存,缓存没有 就去查表,然后继续读取缓存, 没错 就是这么任性。当然 并不是全部这样,具体情况具体对待,但是查询类的倒是的确可以这么做。能极快的提高服务器效率。降低服务器压力。


二:再来个分类 ----网上众说不一啊: 我自己瞎总结一个:按照介质分类:【不要问我为啥是介质我喜欢 谁咬我 反正我自己写给自己看的胖爷说叫介质 那就叫介质】
1.缓存存在文件里;
2.缓存存在内存中;
3.缓存存在数据库表里;



三 : 缓存的东西:
1. 数据库读取来的数据;
2.一些配置参数;

参考文献:https://www.tongpankt.com/3334
参考文献:https://blog.csdn.net/jianai0602/article/details/78066194
贴个代码 就说是 实际应用吧,以上全部可以省略 记得引入 use think\Cache;      //缓存类
public function menus()
    {

      $where = function ($query){
            $query->where('status','=',1);
      };
      // 读取缓存
      if(Cache::has('lm_menu')){
            $menus= Cache::get('lm_menu');//如果又缓存则在缓存中读取数据
      }else{
            $menus = Oamenus::all();//获取数据
            // 处理pid
            foreach ($menus as $key=>$value){
                if($value['pid'] ==0){
                  $value['pid'] = '                }
                foreach ($menus as $key2=>$value2){
                  if($value['pid']==$value2['id']){
                        $value['pid'] = $value2['title'];
                  }
                  
                }
            }
            Cache::set('lm_menu', $menus,3600); //没有缓存则链接数据表获取数据并写入缓存
      }
      // 条数
      $count = count($menus);
      downjson(0,'获取菜单list成功',$count,$menus);
    }



页: [1]
查看完整版本: 老莫粗谈 PHP缓存机制