前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >老雷PHP全栈开发教程之PHP缓存的使用

老雷PHP全栈开发教程之PHP缓存的使用

作者头像
老雷PHP全栈开发
发布2020-07-02 12:16:37
4790
发布2020-07-02 12:16:37
举报
文章被收录于专栏:老雷PHP全栈开发

缓存的作用就是减少对数据的处理,增加网站的性能。适用于非实时需求的数据。

课件内容:

一、页面缓存

新闻类的 很少会更新的内容

将整个页面缓存起来 html静态页

代码语言:javascript
复制
<?php
ob_start();
echo "Hello World";
$out1 = ob_get_contents();
ob_end_flush();
file_put_contents("ob.html",$out1);
ob_start();
 $content=ob_get_contents(); 
 ob_end_clean();
?>

二、数据缓存 php中

局部的缓存 不经常变得数据

缓存结构 key value expire

使用文件存储缓存

使用数据库存储缓存

cache表 k v expire

使用内存软件存储缓存

memcache

memcache

memcached 更丰富

redis 必学的

phpredis c扩展

Predis php扩展

代码语言:javascript
复制
<?php
  cache::set("a","1");
  echo cache::get("a");
  $mem=new memcache();
  $mem->connect('localhost', 11211);
  $mem->set("aa","aa",0,30);
  echo $mem->get("aa");
  $redis=new Redis();
  $redis->connect('127.0.0.1', 6379);
  $redis->set("rk","redis缓存",30);
  echo $redis->get("rk");
  class cache{
    public static $dir="cache";
    public static function set($k,$v,$expire=12345678){
      $md5=md5($k);//有可能会冲突
      //md5值切割成目录a/b/c/$k
      $content=serialize(array(
        "value"=>$v,
        "expire"=>time()+$expire
      ));
      file_put_contents(self::$dir."/".$k,$content);
    }
    public static function get($k){
      $md5=md5($k);
      if(!file_exists(self::$dir."/".$k)){
        return false;
      }
      $c=file_get_contents(self::$dir."/".$k);
      $arr=unserialize($c);
      if($arr["expire"]<time()){
        return false;
      }
      return $arr["value"];
    }
  }


?>

三、代码编译缓存

将php编译后的代码缓存

opcache

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-08-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 老雷PHP全栈开发 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 Redis®
腾讯云数据库 Redis®(TencentDB for Redis®)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档