好得很程序员自学网
  • 首页
  • 后端语言
    • C#
    • PHP
    • Python
    • java
    • Golang
    • ASP.NET
  • 前端开发
    • Angular
    • react框架
    • LayUi开发
    • javascript
    • HTML与HTML5
    • CSS与CSS3
    • jQuery
    • Bootstrap
    • NodeJS
    • Vue与小程序技术
    • Photoshop
  • 数据库技术
    • MSSQL
    • MYSQL
    • Redis
    • MongoDB
    • Oracle
    • PostgreSQL
    • Sqlite
    • 数据库基础
    • 数据库排错
  • CMS系统
    • HDHCMS
    • WordPress
    • Dedecms
    • PhpCms
    • 帝国CMS
    • ThinkPHP
    • Discuz
    • ZBlog
    • ECSHOP
  • 高手进阶
    • Android技术
    • 正则表达式
    • 数据结构与算法
  • 系统运维
    • Windows
    • apache
    • 服务器排错
    • 网站安全
    • nginx
    • linux系统
    • MacOS
  • 学习教程
    • 前端脚本教程
    • HTML与CSS 教程
    • 脚本语言教程
    • 数据库教程
    • 应用系统教程
  • 新技术
  • 编程导航
    • 区块链
    • IT资讯
    • 设计灵感
    • 建站资源
    • 开发团队
    • 程序社区
    • 图标图库
    • 图形动效
    • IDE环境
    • 在线工具
    • 调试测试
    • Node开发
    • 游戏框架
    • CSS库
    • Jquery插件
    • Js插件
    • Web框架
    • 移动端框架
    • 模块管理
    • 开发社区
    • 在线课堂
    • 框架类库
    • 项目托管
    • 云服务

当前位置:首页>后端语言>PHP
<tfoot draggable='sEl'></tfoot>

php高效缓存类 php缓存机制有哪些

很多站长朋友们都不太清楚php高效缓存类,今天小编就来给大家整理php高效缓存类,希望对各位有所帮助,具体内容如下:

本文目录一览: 1、 php文件缓存类汇总 2、 php中 常用的缓存技术有哪些 3、 PHP应用中常用的9大缓存技术? 4、 php 中如何使用缓存,使用哪种缓存机制最好; php文件缓存类汇总

本文实例讲述了php的文件缓存类。分享给大家供大家参考。具体分析如下:

缓存类是我们开发应用中会常用使用到的功能,下面就来给大家整理几个php文件缓存类了,各个文件缓存类写法不同,但在性能上会有区别,有兴趣测试的朋友可测试一下这些缓存类。

例1

复制代码

代码如下:<?php

$fzz

=

new

fzz_cache;

$fzz->kk

=

$_SERVER;

//写入缓存

//$fzz->set("kk",$_SERVER,10000);

//此方法不与类属性想冲突,可以用任意缓存名;

print_r($fzz->kk);

//读取缓存

//print_r($fzz->get("kk"));

//unset($fzz->kk);

//删除缓存

//$fzz->_unset("kk");

var_dump(isset($fzz->kk));

//判断缓存是否存在

//$fzz->_isset("kk");

//$fzz->clear();

//清理过期缓存

//$fzz->clear_all();

//清理所有缓存文件

class

fzz_cache{

public

$limit_time

=

20000;

//缓存过期时间

public

$cache_dir

=

"data";

//缓存文件保存目录

//写入缓存

function

__set($key

,

$val){

$this->_set($key

,$val);

}

//第三个参数为过期时间

function

_set($key

,$val,$limit_time=null){

$limit_time

=

$limit_time

?

$limit_time

:

$this->limit_time;

$file

=

$this->cache_dir."/".$key.".cache";

$val

=

serialize($val);

@file_put_contents($file,$val)

or

$this->error(__line__,"fail

to

write

in

file");

@chmod($file,0777);

@touch($file,time()+$limit_time)

or

$this->error(__line__,"fail

to

change

time");

}

//读取缓存

function

__get($key){

return

$this->_get($key);

}

function

_get($key){

$file

=

$this->cache_dir."/".$key.".cache";

if

(@filemtime($file)>=time()){

return

unserialize(file_get_contents($file));

}else{

@unlink($file)

or

$this->error(__line__,"fail

to

unlink");

return

false;

}

}

//删除缓存文件

function

__unset($key){

return

$this->_unset($key);

}

function

_unset($key){

if

(@unlink($this->cache_dir."/".$key.".cache")){

return

true;

}else{

return

false;

}

}

//检查缓存是否存在,过期则认为不存在

function

__isset($key){

return

$this->_isset($key);

}

function

_isset($key){

$file

=

$this->cache_dir."/".$key.".cache";

if

(@filemtime($file)>=time()){

return

true;

}else{

@unlink($file)

;

return

false;

}

}

//清除过期缓存文件

function

clear(){

$files

=

scandir($this->cache_dir);

foreach

($files

as

$val){

if

(filemtime($this->cache_dir."/".$val)<time()){

@unlink($this->cache_dir."/".$val);

}

}

}

//清除所有缓存文件

function

clear_all(){

$files

=

scandir($this->cache_dir);

foreach

($files

as

$val){

@unlink($this->cache_dir."/".$val);

}

}

function

error($msg,$debug

=

false)

{

$err

=

new

Exception($msg);

$str

=

"<pre>

<span

style='color:red'>error:</span>

".print_r($err->getTrace(),1)."

</pre>";

if($debug

==

true)

{

file_put_contents(date('Y-m-d

H_i_s').".log",$str);

return

$str;

}else{

die($str);

}

}

}

?>

php中 常用的缓存技术有哪些

一般存储一条或者几条信息就用自带的SESSION 和COOKIA就可以搞定,如果要存储的内容多一些,比如一个列表或多个数据表的东西,就要用到mecache和redis 这两个缓存软件,其实这两个也属于数据库,用来存储搜索过后的信息!

PHP应用中常用的9大缓存技术?

一、全页面静态化缓存

也就是将页面全部生成html静态页面,用户访问时直接访问的静态页面,而不会去走php服务器解析的流程。此种方式,在CMS系统中比较常见,比如dedecms;

一种比较常用的实现方式是用输出缓存:

Ob_start()******要运行的代码*******$content=Ob_get_contents();****将缓存内容写入html文件*****Ob_end_clean();

二、数据缓存

顾名思义,就是缓存数据的一种方式;比如,商城中的某个商品信息,当用商品id去请求时,就会得出包括店铺信息、商品信息等数据,此时就可以将这些数据缓存到一个php文件中,文件名包含商品id来建一个唯一标示;下一次有人想查看这个商品时,首先就直接调这个文件里面的信息,而不用再去数据库查询;其实缓存文件中缓存的就是一个php数组之类;

Ecmall商城系统里面就用了这种方式;

三、查询缓存

其实这跟数据缓存是一个思路,就是根据查询语句来缓存;将查询得到的数据缓存在一个文件中,下次遇到相同的查询时,就直接先从这个文件里面调数据,不会再去查数据库;但此处的缓存文件名可能就需要以查询语句为基点来建立唯一标示;

按时间变更进行缓存

就是对于缓存文件您需要设一个有效时间,在这个有效时间内,相同的访问才会先取缓存文件的内容,但是超过设定的缓存时间,就需要重新从数据库中获取数据,并生产最新的缓存文件;比如,我将我们商城的首页就是设置2个小时更新一次。

四、页面部分缓存

该种方式,是将一个页面中不经常变的部分进行静态缓存,而经常变化的块不缓存,最后组装在一起显示;可以使用类似于ob_get_contents的方式实现,也可以利用类似ESI之类的页面片段缓存策略,使其用来做动态页面中相对静态的片段部分的缓存。

该种方式可以用于如商城中的商品页;

五、Opcode缓存

首先php代码被解析为Tokens,然后再编译为Opcode码,最后执行Opcode码,返回结果;所以,对于相同的php文件,第一次运行时可以缓存其Opcode码,下次再执行这个页面时,直接会去找到缓存下的opcode码,直接执行最后一步,而不再需要中间的步骤了。

比较知名的是XCache、TurckMMCache、PHPAccelerator等。

六、按内容变更进行缓存

这个也并非独立的缓存技术,需结合着用;就是当数据库内容被修改时,即刻更新缓存文件;

比如,一个人流量很大的商城,商品很多,商品表必然比较大,这表的压力也比较重;我们就可以对商品显示页进行页面缓存;

当商家在后台修改这个商品的信息时,点击保存,我们同时就更新缓存文件;那么,买家访问这个商品信息时,实际问的是一个静态页面,而不需要再去访问数据库;

试想,如果对商品页不缓存,那么每次访问一个商品就要去数据库查一次,如果有10万人在线浏览商品,那服务器压力就大了;

七、内存式缓存

提到这个,可能大家想到的首先就是Memcached;memcached是高性能的分布式内存缓存服务器。一般的使用目的是,通过缓存数据库查询结果,减少数据库访问次数,以提高动态Web应用的速度、提高可扩展性。

它就是将需要缓存的信息,缓存到系统内存中,需要获取信息时,直接到内存中取;比较常用的方式就是key_>value方式;

connect($memcachehost,$memcacheport)ordie("Couldnotconnect");$memcache->set('key','缓存的内容');$get=$memcache->get($key);//获取信息?>

八、apache缓存模块

apache安装完以后,是不允许被cache的。云南IT培训认为如果外接了cache或squid服务器要求进行web加速的话,就需要在htttpd.conf里进行设置,当然前提是在安装apache的时候要激活mod_cache的模块。

php 中如何使用缓存,使用哪种缓存机制最好;

php的缓存三种.有文件缓存,数据库缓存,memcache缓存;

memcache缓存要求对服务器支持,而且它的缓存是由期限的,一般是30天。这种缓存的效率是最高的。读存取的速度最快。

数据库缓存

和

文件缓存比较简单。适用小的项目。和php新手

关于php高效缓存类的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。

查看更多关于php高效缓存类 php缓存机制有哪些的详细内容...

声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did208303
更新时间:2023-05-03   阅读:16次

上一篇: php文章发布模板 php文章发布模板在哪

下一篇:虚拟试衣php源码 虚拟试衣php源码怎么用

最新资料更新

  • 1.php数值内存溢出 php大数组内存溢出
  • 2.JavaPHP你好 java welcome
  • 3.phpsmtp配置项 php 配置
  • 4.php半角全角 全角半角字符切换
  • 5.apexphp辅助 apex wr辅助
  • 6.php构造方法重写 php 构造方法
  • 7.php防止ajax接口 php防止接口多次请求
  • 8.php毫秒间隔 php时间距离现在
  • 9.最新php环境搭建 最新php环境搭建方案
  • 10.php余数1 php math
  • 11.php代码调用js php调用java代码
  • 12.php表格循环 php循环函数
  • 13.php数组键名排序 php数组值排序
  • 14.登录htmlphp 登录html
  • 15.php教程全局交流 phpunit教程
  • 16.php技术网学习 php技术门户
  • 17.php的if语句 php的if语句运用
  • 18.php有关线程问题 php多线程
  • 19.中南php哪家好 中南cp
  • 20.下载并安装php 下载并安装央视网

CopyRight:2016-2025好得很程序员自学网 备案ICP:湘ICP备09009000号-16 http://haodehen.cn
本站资讯不构成任何建议,仅限于个人分享,参考须谨慎!
本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。
本网站刊载的所有内容(包括但不仅限文字、图片、LOGO、音频、视频、软件、程序等)版权归原作者所有。任何单位或个人认为本网站中的内容可能涉嫌侵犯其知识产权或存在不实内容时,请及时通知本站,予以删除。

网站内容来源于网络分享,如有侵权发邮箱到:kenbest@126.com,收到邮件我们会即时下线处理。
网站框架支持:HDHCMS   51LA统计 百度统计
Copyright © 2018-2025 「好得很程序员自学网」
[ SiteMap ]