新网创想网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
看你是用什么模板了,smarty的做法是把整个页面缓存成静态页面,你可以在cache文件夹下面找到一堆静态页面缓存,这种缓存方式的好处在于,不需要再经过PHP处理过程,理想状态下几乎等于读取静态页面的效率(但是smarty本身的实例化开销还是比较糟糕的)。
成都创新互联公司-专业网站定制、快速模板网站建设、高性价比寿阳网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式寿阳网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖寿阳地区。费用合理售后完善,十年实体公司更值得信赖。
PHP数据缓存常用页面缓存 静态缓存
php页面缓存主要用到的是ob系列函数,如ob_start(),ob_end_flush(),ob_get_contents()
静态缓存是指静态化,直接生成HTML或XML等文本文件,有更新的时候重生成一次,适合于不太变化的页面
给你个页面缓存的例子
function page_cache($ttl = 0)
{
$ttl = $ttl ? $ttl : PAGE_TTL;//缓存时间,默认3600s
$contents = ob_get_contents();//从缓存中获取内容
$contents = "!--page_ttl:".(time() + $ttl)."--n".$contents;
//加上自定义头部:过期时间=生成时间+缓存时间
file_put_contents(PAGE_FILE, $contents);//写入缓存文件中
ob_end_flush();//释放缓存
}
楼主,你所说的这个的实现则是
+
根据文件来判断的,每个文件在生成的时候都有一个创建时间,
+
而在数据库的设计中,则是存在这一个修改时间,
+
也就是用数据库来存储和计算这两个值的差值或者是是否相同,
+
再来判断是否要重新生成实质性的HTML文件..
根据楼主的描述,大致的解决思路如上..
而有关
ob_start
的理解,则是:
+
ob_start
先将数据放入
ob
缓存
+
ob_flush
再将缓存数据输出到程序缓存中
+
ob_end_clean
清空缓存并且关闭缓存
+
程序输出
而在页面静态化中,缓存的方法有:
+
ob缓存
+
smarty
缓存
+
ThinkPHP
缓存
+
模版缓存
静态化又分为:
+
实质的静态化
+
伪静态化
这是本人的理解,楼主可以在此基础上加强,形成自己的理解..
这个原本就是比较麻烦的,
一种方法就是按照我现在做的,定期更新数据,给缓存数据一个生命周期。
第二种方式也是比较实在的就是在更新系统中加入对缓存的作废机制,这样就可以很好的解决了数据更新不及时的问题。
考虑到你公司的数据非常庞大,故第一种方法可能更加有效一些,可以把网页中所需要的数据采用后台程序定期生成的方式来实现,这样可以很好的提高浏览效率,而且也不会影响到第一次浏览的速度。
?php
/**
* Redis缓存操作
* @author hxm
* @version 1.0
* @since 2015.05.04
*/
class RCache extends Object implements CacheFace
{
private $redis = null; //redis对象
private $sId = 1; //servier服务ID
private $con = null;//链接资源
/**
* 初始化Redis
*
* @return Object
*/
public function __construct()
{
if ( !class_exists('Redis') )
{
throw new QException('PHP extension does not exist: Redis');
}
$this-redis = new Redis();
}
/**
* 链接memcahce服务
*
* @access private
* @param string $key 关键字
* @param string $value 缓存内容
* @return array
*/
private function connect( $sid )
{
$file = $this-CacheFile();
require $file;
if(! isset($cache) )
{
throw new QException('缓存配置文件不存在'.$file);
}
$server = $cache[$this-cacheId];
$sid = isset($sid) == 0 ? $this-sId : $sid;//memcache服务选择
if ( ! $server[$sid])
{
throw new QException('当前操作的缓存服务器配置文件不存在');
}希望能帮到你,我还在后盾网学习呢,有不会的可以问我,一会有空回答你。( ^ω^)
php的缓存三种.有文件缓存,数据库缓存,memcache缓存;
memcache缓存要求对服务器支持,而且它的缓存是由期限的,一般是30天。这种缓存的效率是最高的。读存取的速度最快。
数据库缓存
和
文件缓存比较简单。适用小的项目。和php新手