代码如下:class CacheException extends Exception {} /** * 缓存抽象类 */ abstract class Cache_Abstract { /** * 读缓存变量 * * @param string $key 缓存下标 * @return mixed */ abstract public function fetch($key); /** * 缓存变量 * * @param string $key 缓存变量下标 * @param string $value 缓存变量的值 * @return bool */ abstract public function store($key, $value); /** * 删除缓存变量 * * @param string $ke...
代码如下://本功能主要是利用文件修改时间函数filemtime与现在时间作减法判断是否更新内容。 $cahetime=2;//设置过期时间 $cahefile="cahe.txt";//读写文本 if(file_exists($cahefile) && time()-$cahetimeecho file_get_contents($cahefile); } else { file_put_contents($cahefile,date("y-m-d H:i:s",time())); } ?>
memcache 概述 共享内存是一种在相同机器中的应用程序之间交换数据的有效方式。一个进程可创建一个可供其他进程访问的内存段,只要它分配了正确的权限。每个内存段拥有一个惟一的 ID(称为 shmid),这个 ID 指向一个物理内存区域,其他进程可在该区域操作它。创建并提供了合适的权限之后,同一台机器中的其他进程就可以操作这些内存段:读取、写入和删除。 这表明使用 C 语言编写的应用程序可与使用其他语言(比如 Java? 或 PHP)...
ThinkPHP 很多的开源cms系统都有一键清除缓存的功能,缓存是为了减轻服务器的压力而产生的,但是同时有缓存的存在也可能使一些数据不能实时更新,对此,我们就来实现一个ThinkPHP的清理缓存的功能。代码如下: ThinkPHP后台执行的代码: //获取要清楚的目录和目录所在的绝对路径public function cache(){////前台用ajax get方式进行提交的,这里是先判断一下if($_POST[type]){//得到传递过来的值$type=$_POST[type];//将传递过来的值...
ThinkPHP 一般使用文件方式的缓存就能够满足要求,而thinkPHP还提供了一个专门用于文件方式的快速缓存方法F方法。由于采用的是PHP返回方式,所以其效率较S方法较高。 F方法具有如下特点: 1.简单数据缓存;2.文件形式保存;3.采用PHP返回数据方式加载缓存;4.支持子目录缓存以及自动创建;5.支持删除缓存和批量删除;代码如下:$path="../Public/Runtime/";$str="fastrunaaaaaaaaaaaaaaaa";F("str/ffun",$str,$path); 这样就把$str字...
核心代码:<?php//创建一个memcache对象实例$memcache = new Memcache;if(!$memcache->connect("127.0.0.1",11211)){die(连接失败);}if($memcache->set(key1,"xian",MEMCACHE_COMPRESSED,60)){echo sucess!;}//存值,其中xian字符串,也可以为数组,对象,但不能为资源$val = $memcache->get(key1);//查询获取值echo $val;$memcache->replace(key1,beijing,MEMCACHE_COMPRESSED,60);//修改$memcache->delete(key1);//删除 ?>
当varnish和网站部署在同一台服务器上的时候,我们不可能随时登录上服务器去查看varnish的命中率,没想到有大神早就写了出来,今天就分享给大家,使用网页查看varnish命中率。系统:centos 5.x 软件:varnish-3.0.xps:3.0以下的版本可以通过Socket连接到Varnish管理端口,通过stat命令查看,3.0以上没有stat命令,只能通过下面的方法解决。代码如下: <?php $outfile=shell_exec("/usr/bin/varnishstat -x"); $xml=simplexml_load_string($ou...
本文实例讲述了php内存缓存实现方法。分享给大家供大家参考。具体如下: 在php中缓存分为很多种类型如,内存缓存,文件缓存,页面缓存。本文要来讲述关于php中内存缓存的一些方法,这里我们将介绍Memcached缓存和php自带的APC缓存方法. 1.Memcached缓存。 memcached是高性能的分布式内存缓存服务器,通过缓存数据库查询结果,减少数据库访问次数,以提高动态Web应用的速度,memcached 使用了“Key=>Value”方式组织数据,可以允许不同主机上...
Laravel 是我最近用得非常多而且越用就越喜欢的一款PHP框架,由于没有向下兼容的历史包袱,完全面向对象的风格,借助 Facades 优雅的IoC Container 实现,采用 Composer 进行包管理,可以方便地引入和使用开源社区里的优秀组件……总而言之,这是一款真正让你能够 "code happy" 的“巨匠级PHP开发框架”。 在尝试把自己的 Laravel App 部署到阿里云的时候,遇到了一个问题: Laravel 支持 Memcached 缓存,阿里云的 OCS 也是基于 M...
之前我写了一篇在 Laravel 4 框架中使用阿里云 OCS 缓存的文章,介绍了如何通过扩展 Laravel 4 来支持需要 SASL 认证的阿里云 OCS 缓存服务。有网友问我,ACE 的缓存怎么在 Laravel 4 中使用。我本来觉得应该可以完全用相同的办法,后来自己尝试的时候才发现,ACE 的缓存差别非常大。所以再写一篇,介绍一下如何在 Laravel 框架中使用阿里云 ACE 的缓存服务。 如何扩展 Laravel 的缓存驱动 在 Laravel 4 中使用 Cache::get($key), ...
本文实例讲述了PHP实现的简单缓存类。分享给大家供大家参考。具体如下: cache.inc.php:<?php class Cache {/*** $dir : 缓存文件存放目录* $lifetime : 缓存文件有效期,单位为秒* $cacheid : 缓存文件路径,包含文件名* $ext : 缓存文件扩展名(可以不用),这里使用是为了查看文件方便*/private $dir;private $lifetime;private $cacheid;private $ext;/*** 析构函数,检查缓存目录是否有效,默认赋值*/function __construct($dir=,$l...
php程序在抵抗大流量访问的时候动态网站往往都是难以招架,所以要引入缓存机制,一般情况下有两种类型缓存 一、文件缓存 二、数据查询结果缓存,使用内存来实现高速缓存 本例主要使用文件缓存。 主要原理使用缓存函数来存储网页显示结果,如果在规定时间里再次调用则可以加载缓存文件。 工具类代码:// 文件缓存类 class Cache {/*** $dir : 缓存文件存放目录* $lifetime : 缓存文件有效期,单位为秒* $cacheid : 缓存文件路径,包含...
本文实例讲述了PHP基于文件存储实现缓存的方法。分享给大家供大家参考。具体如下: 在一些数据库数据记录较大,但是服务器有限的时候,可能一条MySQL查询就会好几百毫秒,一个简单的页面一般也有十几条查询,这个时候也个页面加载下来基本要好几秒了,如果并发量高的话服务器基本就瘫痪了,造成一个页面很久也加载不下来,这个时候我们可以使用文件缓存来缓解下MySQL的压力,下面给个使用例子。<?php //页面业务逻辑处理,获得结果...
php中缓存分类数据库缓存,文件缓存和内存缓存,下面我来给各位同学详细介绍PHP文件缓存类实现代码,有需要了解的朋友可参考。 页面缓存类 代码如下 :<?php /*include( "cache.php" ); $cache = new cache(30); $cache->cacheCheck(); echo date("Y-m-d H:i:s"); $cache->caching(); */ class cache { //缓存目录 var $cacheRoot = "./cache/"; //缓存更新时间秒数,0为不缓存 var $cacheLimitTime = 3; //缓存文件...
本文实例讲述了PHP使用redis实现统计缓存mysql压力的方法。分享给大家供大家参考,具体如下:<?phpheader("Content-Type:text/html;charset=utf-8");include lib/mysql.class.php;$mysql_obj = mysql::getConn();//redis $redis = new Redis();$redis->pconnect(127.0.0.1, 6379);if(isset($_SERVER[HTTP_REFERER])){$url_md5 = md5($_SERVER[HTTP_REFERER]);}$adve_key = adve; $adve_key_exists = adve_exists;if(!$redis->exist...