老莫的笔记本  
  
请选择 进入手机版 | 继续访问电脑版
查看: 1049|回复: 0

老莫粗谈 PHP缓存机制

[复制链接]

662

主题

878

帖子

5113

积分

超级版主

Rank: 8Rank: 8

积分
5113
发表于 2018-9-29 16:34:16 | 显示全部楼层 |阅读模式
本帖最后由 周大胖子 于 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;        //缓存类
  1. public function menus()
  2.     {
  3.         $where = function ($query){
  4.             $query->where('status','=',1);
  5.         };
  6.         // 读取缓存
  7.         if(Cache::has('lm_menu')){
  8.             $menus= Cache::get('lm_menu');//如果又缓存则在缓存中读取数据
  9.         }else{
  10.             $menus = Oamenus::all();//获取数据
  11.             // 处理pid
  12.             foreach ($menus as $key=>$value){
  13.                 if($value['pid'] ==0){
  14.                     $value['pid'] = '                }
  15.                 foreach ($menus as $key2=>$value2){
  16.                     if($value['pid']==$value2['id']){
  17.                         $value['pid'] = $value2['title'];
  18.                     }
  19.                     
  20.                 }
  21.             }
  22.             Cache::set('lm_menu', $menus,3600); //没有缓存则链接数据表获取数据并写入缓存
  23.         }
  24.         // 条数
  25.         $count = count($menus);
  26.         downjson(0,'获取菜单list成功',$count,$menus);
  27.     }
复制代码



回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表