PHP数据缓存技术

 更新时间:2007年02月14日 00:00:00   作者:  
数据缓存是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.还未想到……  

望共同探讨。

相关文章

  • PHP开发注意事项总结

    PHP开发注意事项总结

    这篇文章主要介绍了PHP开发注意事项总结,非常详细,需要的朋友可以参考下
    2015-02-02
  • PHP+mysql实现的三级联动菜单功能示例

    PHP+mysql实现的三级联动菜单功能示例

    这篇文章主要介绍了PHP+mysql实现的三级联动菜单功能,涉及mysql数据库创建、数据添加及php读取mysql、创建联动菜单相关操作技巧,需要的朋友可以参考下
    2019-02-02
  • php 页面执行时间计算代码

    php 页面执行时间计算代码

    我们在开发网页的时候,往往会测试一下自己写的网页的执行时间是多少,例如:有时网页打开很慢,但是不知道是卡在哪了,这时我们就可以使用以下的方法来判断页面的执行时间是多少,准确的找到问题所在点,精确到毫秒。
    2008-12-12
  • php数组函数序列之array_unshift() 在数组开头插入一个或多个元素

    php数组函数序列之array_unshift() 在数组开头插入一个或多个元素

    array_unshift() 函数在数组开头插入一个或多个元素。被加上的元素作为一个整体添加,这些元素在数组中的顺序和在参数中的顺序一样
    2011-11-11
  • PHP记录搜索引擎蜘蛛访问网站足迹的方法

    PHP记录搜索引擎蜘蛛访问网站足迹的方法

    这篇文章主要介绍了PHP记录搜索引擎蜘蛛访问网站足迹的方法,实例分析了针对php记录搜索引擎蜘蛛访问足迹的技巧,涉及数据库的创建及php记录各类常见搜索引擎访问的方法,需要的朋友可以参考下
    2015-04-04
  • DOM XPATH获取img src值的query

    DOM XPATH获取img src值的query

    php中用DOM XPATH获取img src值的代码,需要的朋友可以参考下
    2013-09-09
  • 解决Yii2邮件发送结果返回成功,但接收不到邮件的问题

    解决Yii2邮件发送结果返回成功,但接收不到邮件的问题

    最近在使用Yii2发送邮件的时候遇到了一个问题,发送返回提示成功但并没有收到邮件,所以通过查找相关的资料,下面这篇文章就来给大家介绍了关于如何解决Yii2邮件发送结果返回成功,但接收不到邮件的问题,需要的朋友可以参考下。
    2017-05-05
  • php中Ioc(控制反转)和Di(依赖注入)

    php中Ioc(控制反转)和Di(依赖注入)

    最近在使用ThinkPHP5框架,看了下他的源码,发现有很多地方也用到了依赖注入(控制反转),觉得有必要和大家简单聊一聊什么是依赖注入以及怎么使用它。
    2017-05-05
  • php 下 html5 XHR2 + FormData + File API 上传文件操作实例分析

    php 下 html5 XHR2 + FormData + File API 上传文件操作实例分析

    这篇文章主要介绍了php 下 html5 XHR2 + FormData + File API 上传文件操作,结合实例形式分析了php 下使用html5 XHR2 + FormData + File API 实现上传文件操作方法与相关操作注意事项,需要的朋友可以参考下
    2020-02-02
  • PHP中数据类型转换的三种方式

    PHP中数据类型转换的三种方式

    这篇文章主要介绍了PHP中数据类型转换的三种方式,本文讲解了允许转换的PHP数据类型、PHP数据类型的三种转换方式等内容,需要的朋友可以参考下
    2015-04-04

最新评论