PHP数据缓存技术
2015-01-24信息快讯网
Cache是“以空间换时间”策略的典型应用模式,是提高系统性能的一种重要方法。缓存的使用在大访问量的情况下能够极大的减少对数据库操作的次数,明显降低系统负荷提高系统性能。相比页面的缓存,结果集是一种“原始数据”不包含格式信息,数据量相对较小,而且可以再进行格式化,所以显得相当灵活。由于PHP是“一边编译一边执行”的脚本语言,某种程度上也提供了一种相当方便的结果集缓存使用方法――通过动态include相应的数据定义代码段的方式使用缓存。如果在“RamDisk”上建缓存的话,效率应该还可以得到进一步的提升。以下是一小段示例代码,供参考。
<?
// load data with cache
function load_data($id,$cache_lifetime) {
// the return data
$data = array();
// make cache filename
$cache_filename = ‘cache_‘.$id.‘.php‘;
// check cache file‘s last modify time
$cache_filetime = filemtime($cache_filename);
if (time() - $cache_filetime <= $cache_lifetime) {
//** the cache is not expire
include($cache_filename);
} else {
//** the cache is expired
// load data from database
// ...
while ($dbo->nextRecord()) {
// $data[] = ...
}
// format the data as a php file
$data_cache = "
while (list($key, $val) = each($data)) {
$data_cache .= "$data[‘$key‘]=array(‘";
$data_cache .= "‘NAME‘=>"".qoute($val[‘NAME‘])."\","
$data_cache .= "‘VALUE‘=>\"".qoute($val[‘VALUE‘])."\""
$data_cache .= ";);\r\n";
}
$data_cache = "?>\r\n";
// save the data to the cache file
if ($fd = fopen($cache_filename,‘w+‘)) {
fputs($fd,$data_cache);
fclose($fd);
}
}
return $data;
}
?>
适用情况:
1.数据相对比较稳定,主要是读取操作。
2.文件操作要比数据库操作快。
3.复杂数据访问,大数据量访问,密集数据访问,系统数据库负载极重。
4.Web/DB分离结构或者多Web单DB结构。
未经证实的问题:
1.并发访问时对文件的读写是否会引起锁定问题。
2.涉及到的数据文件太多时,性能如何。
扩展思路:
1.生成JavaScript数据定义代码,在客户端调用。
2.还未想到……
望共同探讨。
建站常用13种PHP开源CMS比较
怎样去阅读一份php源代码
php win下Socket方式发邮件类
php 分页原理详解
PHP nl2br函数 将换行字符转成 <br>
谈PHP生成静态页面分析 模板+缓存+写文件
数据库查询记录php 多行多列显示
PHP 实现多服务器共享 SESSION 数据
通过PHP CLI实现简单的数据库实时监控调度
PHP 数据库 常见问题小结第1/3页
PHP 输出缓存详解
php MYSQL 数据备份类
php 无限级缓存的类的扩展
php 禁止页面缓存输出
php 文件状态缓存带来的问题
修改了一个很不错的php验证码(支持中文)
再次研究下cache_lite
回答PHPCHINA上的几个问题:URL映射
简单采集了yahoo的一些数据
用PHPdig打造属于你自己的Google[图文教程]
php中的一个中文字符串截取函数
PHP音乐采集(部分代码)
一个数据采集类
phpmyadmin中配置文件现在需要绝密的短语密码的解决方法
php批量删除数据
在数据量大(超过10万)的情况下
phpfans留言版用到的数据操作类和分页类
小偷PHP+Html+缓存
缓存技术详谈―php
ajax缓存问题解决途径
用缓存实现静态页面的测试
php缓存技术介绍