drupal7cache缓存开发入门教程

drupal7cache缓存开发入门教程

ID:32398968

大小:31.00 KB

页数:3页

时间:2019-02-04

drupal7cache缓存开发入门教程_第1页
drupal7cache缓存开发入门教程_第2页
drupal7cache缓存开发入门教程_第3页
资源描述:

《drupal7cache缓存开发入门教程》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、Drupal7cache缓存开发入门教程  Drupal是一款非常好用的php开发的开源内容管理框架了,这个框架在缓存方面做得非常的不错,下文一起来学习Drupal7cache缓存开发入门教程吧。  使用Drupal构建复杂而动态的内容是件很容易的事情。但是稍有不慎,你会为这种容易付出代价。在用户查看某些复杂而动态的页面的时候,复杂的数据库查询,与高花销的计算会导致页面性能方面的问题。  解决方案之一是在Druapl的后台页面开启页面缓存。页面缓存开启后,可以在某些页面极大的降低数据库查询次数从而提高页面性能。但是这有一定的局限性,就是页面缓存仅仅对匿名用户有效。对

2、应登录用户则会生效。  逐渐的,你可能会分析自己写过的代码,找出数据出查询的热点进行缓存优化。幸运的是,Drupal已经内置了一些缓存API,如果遵循下面的一些规则,可以将你的代码优化工作变得更容易。  基本规则:  规则:如果计算结果可以重用或存储,就不要计算两次。  下面的简单例子用来演示这种情况。  代码如下  复制代码  functionmy_module_function(){  $my_data=&drupal_static(__FUNCTION__);  if(!isset($my_data)){  //将一些高花销的计算逻辑写在这里,并将结果

3、赋值给$my_data变量。  }  return$my_data;  }  理解上面的的代码,需要一定的php基础知识。  首先是知道php有个变量类型是静态变量(static)。drupal_static函数其实就是实现static变量的集中管理。  其次是函数前加"&"符号,这种是按址传值。这样的话,对$my_data变量的任何更改,对&drupal_static(__FUNCTION__)都会相应更改。  这两点理解后再来看上面的逻辑,发现虽然只有一个if判断,但其实这段代码是精妙无比的。  进阶:善用Drupal的cac

4、he函数。  在上面的代码中,静态变量的数据只会在一次的页面加载过程中有效。如果重新访问该页面,则会重新进行数据的计算。就是说静态变量缓存的数据只是暂时的,没有长久的存储起来。下面的代码,演示如何将复杂的计算结果的数据存储到drupal的cache表中,从而实现长久存储的目的。  代码如下  复制代码  functionmy_module_function(){  $my_data=&drupal_static(__FUNCTION__);  if(!isset($my_data)){  if($cache=cache_get('my_module_data

5、')){  $my_data=$cache->data;  }  else{  //将一些高花销的计算逻辑写在这里,并将结果赋值给$my_data变量。  //这里将计算的结果保存到cache表中。  cache_set('my_module_data',$my_data,'cache');  }  }  return$my_data;  }  data;  }  else{  //将一些高花销的计算逻辑写在这里,并将结果赋值给$my_data变量。  //这里将计算的结果保存到cache表中。  cache_set('my_module_data',$my_dat

6、a,'cache');  }  }  return$my_data;  }  上面的例子,结合了cache_set与cache_get,对计算出的结果数据缓存到Drupal的cache表中;在第一次执行的时候,需要复杂计算;但是第二次执行这段代码的时候,数据内容会直接从cache表中读取,从而避免复杂的计算开销或数据库查询,有一次提升代码执行的效率。  缓存数据更新  如果使用cache_set()方式设置的cache数据过期了怎么办?默认情况下,cache_set设置的缓存会一直存储在数据库中,直到你调用cache_clear_all()函数进行强制清空缓存(如果

7、安装了admin_menu模块,使用adminmenu提供的清空缓存功能也可以清除cache表的缓存)。  如果你的数据是比较零散的更新,新濠天地娱乐城keelungedu.com可以在每次数据更新的时候,调用cache_clear_all('my_module_data','cache')进行缓存数据的更新。如果是存储的一些有规律的数据片段,可以通过如下方式使用通配符的方式进行清空缓存。  代码如下  复制代码  cache_clear_all('my_module','cache',TRUE);  这种方式会清空所有以my_module为开头的缓存。  如果

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。