当前位置: 首页 > 图文教程 > 网络编程 > PHP > PHP数据缓存技术

PHP
用PHP构建一个留言本
用PHP实现通过Web执行C/C++程序
PHP百行代码快速构建简易聊天室
FC4下安装plog快速指南(plog版本:1.01)
一个简单的PHP投票程序
采用行写方式的聊天程序(之四)
PHP对象编程实现3D饼图
可以文本显示的公告栏
采用行写方式的聊天程序(之五)
一个可分页的基于文本的PHP留言板
PHP用户认证及管理完全源码
初学者的留言簿
一个很简单的PHP的后端脚本,能够从(某个网中)得到最新新闻。
是一个设计将LinuxFreak.org新闻标题放置到你的网站的PHP脚本程序。
如何用php作线形图的函数
简单用户注册程序
一个浏览器检查类
用PHP+MYSQL实现论坛里的分级+分页显示
判断ICQ是否在线的代码
PHP的FDF文档支持

PHP数据缓存技术


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 87 ::
收藏到网摘: n/a

数据缓存是web开发中常用的一种性能优化方法。目前主要文件缓存或者数据库缓存两种形式,数据库缓存数据库不是什么不可能的事情,的确也是很好很重要的。我认为传统数据库主要是从业务层、模块设计等方面来考虑的,而缓存数据库主要是从实现层来设计的,主要是为了缓存常用的多表查询之类的。这里主要将的是文件缓存,网上很多资料了,这里我转载了一些原理资料。
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.还未想到……
望共同探讨。