数据缓存是web开发中常用的一种性能优化方法。目前主要文件缓存或者数据库缓存两种形式,数据库缓存数据库不是什么不可能的事情,的确也是很好很重要的。我认为传统数据库主要是从业务层、模块设计等方面来考虑的,而缓存数据库主要是从实现层来设计的,主要是为了缓存常用的多表查询之类的。这里主要将的是文件缓存,网上很多资料了,这里我转载了一些原理资料。
    Cache是“以空间换时间”策略的典型应用模式,是提高系统性能的一种重要方法。缓存的使用在大访问量的情况下能够极大的减少对数据库操作的次数,明显降低系统负荷提高系统性能。相比页面的缓存,结果集是一种“原始数据”不包含格式信息,数据量相对较小,而且可以再进行格式化,所以显得相当灵活。由于PHP是“一边编译一边执行”的脚本语言,某种程度上也提供了一种相当方便的结果集缓存使用方法——通过动态include相应的数据定义代码段的方式使用缓存。如果在“RamDisk”上建缓存的话,效率应该还可以得到进一步的提升。以下是一小段示例代码,供参考。
 1php提高网站性能之PHP数据缓存技术详解function load_data($id,$cache_lifetime) {     
 2php提高网站性能之PHP数据缓存技术详解   
 3php提高网站性能之PHP数据缓存技术详解// the return data     
 4php提高网站性能之PHP数据缓存技术详解   
 5php提高网站性能之PHP数据缓存技术详解$data = array();     
 6php提高网站性能之PHP数据缓存技术详解   
 7php提高网站性能之PHP数据缓存技术详解// make cache filename     
 8php提高网站性能之PHP数据缓存技术详解   
 9php提高网站性能之PHP数据缓存技术详解$cache_filename = ‘cache_‘.$id..php‘;     
10php提高网站性能之PHP数据缓存技术详解   
11php提高网站性能之PHP数据缓存技术详解// check cache file‘s last modify time     
12php提高网站性能之PHP数据缓存技术详解   
13php提高网站性能之PHP数据缓存技术详解$cache_filetime = filemtime($cache_filename);     
14php提高网站性能之PHP数据缓存技术详解   
15php提高网站性能之PHP数据缓存技术详解if (time() - $cache_filetime <= $cache_lifetime) {     
16php提高网站性能之PHP数据缓存技术详解   
17php提高网站性能之PHP数据缓存技术详解//** the cache is not expire     
18php提高网站性能之PHP数据缓存技术详解   
19php提高网站性能之PHP数据缓存技术详解include($cache_filename);     
20php提高网站性能之PHP数据缓存技术详解   
21php提高网站性能之PHP数据缓存技术详解else {     
22php提高网站性能之PHP数据缓存技术详解   
23php提高网站性能之PHP数据缓存技术详解//** the cache is expired     
24php提高网站性能之PHP数据缓存技术详解   
25php提高网站性能之PHP数据缓存技术详解// load data from database     
26php提高网站性能之PHP数据缓存技术详解   
27php提高网站性能之PHP数据缓存技术详解// php提高网站性能之PHP数据缓存技术详解     
28php提高网站性能之PHP数据缓存技术详解   
29php提高网站性能之PHP数据缓存技术详解while ($dbo->nextRecord()) {     
30php提高网站性能之PHP数据缓存技术详解   
31php提高网站性能之PHP数据缓存技术详解// $data[] = php提高网站性能之PHP数据缓存技术详解     
32php提高网站性能之PHP数据缓存技术详解   
33php提高网站性能之PHP数据缓存技术详解}     
34php提高网站性能之PHP数据缓存技术详解   
35php提高网站性能之PHP数据缓存技术详解// format the data as a php file     
36php提高网站性能之PHP数据缓存技术详解   
37php提高网站性能之PHP数据缓存技术详解$data_cache = "    
38php提高网站性能之PHP数据缓存技术详解  
39php提高网站性能之PHP数据缓存技术详解while (list($key$val) = each($data)) {    
40php提高网站性能之PHP数据缓存技术详解  
41php提高网站性能之PHP数据缓存技术详解$data_cache .= "$data[‘$key‘]=array(‘";    
42php提高网站性能之PHP数据缓存技术详解  
43php提高网站性能之PHP数据缓存技术详解$data_cache .= "‘NAME‘=>"".qoute($val[‘NAME‘])."\","     
44php提高网站性能之PHP数据缓存技术详解   
45php提高网站性能之PHP数据缓存技术详解$data_cache .= "‘VALUE‘=>\"".qoute($val[‘VALUE‘])."\""     
46php提高网站性能之PHP数据缓存技术详解   
47php提高网站性能之PHP数据缓存技术详解$data_cache .= ";);";     
48php提高网站性能之PHP数据缓存技术详解   
49php提高网站性能之PHP数据缓存技术详解}     
50php提高网站性能之PHP数据缓存技术详解   
51php提高网站性能之PHP数据缓存技术详解$data_cache = "?>";     
52php提高网站性能之PHP数据缓存技术详解   
53php提高网站性能之PHP数据缓存技术详解// save the data to the cache file     
54php提高网站性能之PHP数据缓存技术详解   
55php提高网站性能之PHP数据缓存技术详解if ($fd = fopen($cache_filename,‘w+‘)) {     
56php提高网站性能之PHP数据缓存技术详解   
57php提高网站性能之PHP数据缓存技术详解fputs($fd,$data_cache);     
58php提高网站性能之PHP数据缓存技术详解   
59php提高网站性能之PHP数据缓存技术详解fclose($fd);     
60php提高网站性能之PHP数据缓存技术详解   
61php提高网站性能之PHP数据缓存技术详解}     
62php提高网站性能之PHP数据缓存技术详解   
63php提高网站性能之PHP数据缓存技术详解}     
64php提高网站性能之PHP数据缓存技术详解   
65php提高网站性能之PHP数据缓存技术详解return $data;     
66php提高网站性能之PHP数据缓存技术详解   
67php提高网站性能之PHP数据缓存技术详解}     
68php提高网站性能之PHP数据缓存技术详解   
69php提高网站性能之PHP数据缓存技术详解?>    

 适用情况:
    1.数据相对比较稳定,主要是读取操作。
    2.文件操作要比数据库操作快。
    3.复杂数据访问,大数据量访问,密集数据访问,系统数据库负载极重。
    4.Web/DB分离结构或者多Web单DB结构。

////////////补充

 


 1php提高网站性能之PHP数据缓存技术详解<?php     
 2php提高网站性能之PHP数据缓存技术详解function cache_isvalid($cacheid,$expire=300) {     
 3php提高网站性能之PHP数据缓存技术详解@clearstatcache();     
 4php提高网站性能之PHP数据缓存技术详解if (!@file_exists($cacheid)) return false;     
 5php提高网站性能之PHP数据缓存技术详解if (!($mtime=@filemtime($cacheid))) return false;     
 6php提高网站性能之PHP数据缓存技术详解$nowtime=mktime();     
 7php提高网站性能之PHP数据缓存技术详解if (($mtime+$expire)<$nowtime) {     
 8php提高网站性能之PHP数据缓存技术详解return false;     
 9php提高网站性能之PHP数据缓存技术详解}else{     
10php提高网站性能之PHP数据缓存技术详解return true;     
11php提高网站性能之PHP数据缓存技术详解}     
12php提高网站性能之PHP数据缓存技术详解}     
13php提高网站性能之PHP数据缓存技术详解   
14php提高网站性能之PHP数据缓存技术详解function cache_write($cacheid,$cachecontent) {     
15php提高网站性能之PHP数据缓存技术详解$retry=100;     
16php提高网站性能之PHP数据缓存技术详解for ($i=0;$i<$retry;$i++) {     
17php提高网站性能之PHP数据缓存技术详解$ft=@fopen($cacheid,"wb");     
18php提高网站性能之PHP数据缓存技术详解if ($ft!=falsebreak;     
19php提高网站性能之PHP数据缓存技术详解if ($i==($retry-1)) return false;     
20php提高网站性能之PHP数据缓存技术详解}     
21php提高网站性能之PHP数据缓存技术详解@flock($ft,LOCK_UN);     
22php提高网站性能之PHP数据缓存技术详解@flock($ft,LOCK_EX|LOCK_NB);     
23php提高网站性能之PHP数据缓存技术详解for ($i=0;$i<$retry;$i++) {     
24php提高网站性能之PHP数据缓存技术详解$tmp=@fwrite($ft,$cachecontent);     
25php提高网站性能之PHP数据缓存技术详解if ($tmp!=falsebreak;     
26php提高网站性能之PHP数据缓存技术详解if ($i==($retry-1)) return false;     
27php提高网站性能之PHP数据缓存技术详解}     
28php提高网站性能之PHP数据缓存技术详解@flock($ft,LOCK_UN);     
29php提高网站性能之PHP数据缓存技术详解@fclose($ft);     
30php提高网站性能之PHP数据缓存技术详解@chmod($cacheid,0777);     
31php提高网站性能之PHP数据缓存技术详解return true;     
32php提高网站性能之PHP数据缓存技术详解}     
33php提高网站性能之PHP数据缓存技术详解   
34php提高网站性能之PHP数据缓存技术详解function cache_fetch($cacheid) {     
35php提高网站性能之PHP数据缓存技术详解$retry=100;     
36php提高网站性能之PHP数据缓存技术详解for ($i=0;$i<$retry;$i++) {     
37php提高网站性能之PHP数据缓存技术详解$ft=@fopen($cacheid,"rb");     
38php提高网站性能之PHP数据缓存技术详解if ($ft!=falsebreak;     
39php提高网站性能之PHP数据缓存技术详解if ($i==($retry-1)) return false;     
40php提高网站性能之PHP数据缓存技术详解}     
41php提高网站性能之PHP数据缓存技术详解$cachecontent='';     
42php提高网站性能之PHP数据缓存技术详解while (!@feof($ft)) {     
43php提高网站性能之PHP数据缓存技术详解$cachecontent.=@fread($ft,4096);     
44php提高网站性能之PHP数据缓存技术详解}     
45php提高网站性能之PHP数据缓存技术详解@fclose($ft);     
46php提高网站性能之PHP数据缓存技术详解return $cachecontent;     
47php提高网站性能之PHP数据缓存技术详解}     
48php提高网站性能之PHP数据缓存技术详解   
49php提高网站性能之PHP数据缓存技术详解function cache_clear_expired($cachedirname,$expire=300) {     
50php提高网站性能之PHP数据缓存技术详解$cachedir=@opendir($cachedirname);     
51php提高网站性能之PHP数据缓存技术详解while (false!==($userfile=@readdir($cachedir))) {     
52php提高网站性能之PHP数据缓存技术详解if ($userfile!="." and $userfile!=".." and substr($userfile,-4,4)=='.htm') {     
53php提高网站性能之PHP数据缓存技术详解$cacheid=$cachedirname.'/'.$userfile;     
54php提高网站性能之PHP数据缓存技术详解if (!cache_isvalid($cacheid,$expire)) @unlink($cacheid);     
55php提高网站性能之PHP数据缓存技术详解}     
56php提高网站性能之PHP数据缓存技术详解}     
57php提高网站性能之PHP数据缓存技术详解@closedir($cachedir);     
58php提高网站性能之PHP数据缓存技术详解}     
59php提高网站性能之PHP数据缓存技术详解   
60php提高网站性能之PHP数据缓存技术详解?>   

相关文章: