• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • dedecms
  • ecshop
  • z-blog
  • UcHome
  • UCenter
  • drupal
  • WordPress
  • 帝国cms
  • phpcms
  • 动易cms
  • phpwind
  • discuz
  • 科汛cms
  • 风讯cms
  • 建站教程
  • 运营技巧
您的位置:首页 > CMS教程 >drupal > Drupal7的cache缓存开发实例教程

Drupal7的cache缓存开发实例教程

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-05-13

佚名 向大家介绍了drupal7,drupal7视频教程,drupal7安装,drupal7权威指南,drupal7教程等相关知识,希望对您有所帮助

本文实例讲述了Drupal7的cache缓存开发的方法。分享给大家供大家参考。具体方法如下:

Drupal是一款非常好用的php开发的开源内容管理框架了,这个框架在缓存方面做得非常的不错,下文一起来学习Drupal7 cache缓存开发吧。

使用Drupal构建复杂而动态的内容是件很容易的事情。但是稍有不慎,你会为这种容易付出代价。在用户查看某些复杂而动态的页面的时候,复杂的数据库查询,与高花销的计算会导致页面性能方面的问题。

解决方案之一是在Druapl的后台页面开启页面缓存。页面缓存开启后,可以在某些页面极大的降低数据库查询次数从而提高页面性能。但是这有一定的局限性,就是页面缓存仅仅对匿名用户有效。对应登录用户则会生效。

逐渐的,你可能会分析自己写过的代码,找出数据出查询的热点进行缓存优化。幸运的是,Drupal已经内置了一些缓存API,如果遵循下面的一些规则,可以将你的代码优化工作变得更容易。

基本规则:

规则:如果计算结果可以重用或存储,就不要计算两次。
下面的简单例子用来演示这种情况。


这两点理解后再来看上面的逻辑,发现虽然只有一个if判断,但其实这段代码是精妙无比的。

进阶:善用Drupal的cache函数。

在上面的代码中,静态变量的数据只会在一次的页面加载过程中有效。如果重新访问该页面,则会重新进行数据的计算。就是说静态变量缓存的数据只是暂时的,没有长久的存储起来。下面的代码,演示如何将复杂的计算结果的数据存储到drupal的cache表中,从而实现长久存储的目的。


缓存数据更新

如果使用cache_set()方式设置的cache数据过期了怎么办?默认情况下,cache_set设置的缓存会一直存储在数据库中,直到你调用cache_clear_all()函数进行强制清空缓存(如果安装了admin_menu模块,使用admin menu提供的清空缓存功能也可以清除cache表的缓存)。
如果你的数据是比较零散的更新,可以在每次数据更新的时候,调用


如果你的缓存的过期时间是有规律的,可以预测的,可以尝试使用下面方式来给缓存设置过期时间。


定制自己的缓存表

在上面的代码展示过程中,如果你细心,你会发现cache_set()函数的第三个参数"cache",这个其实是代表cache的数据表的名字。如果你需要使用大量的缓存,最好可以使用一个独立的数据表来存数缓存数据;这样有利于加速数据查询的速度。大名鼎鼎的views模块就使用了这种技术来实现其缓存控制策略。

最简单,最Drupal化的定制自定义缓存表的方式,是在模块的install文件里执行hook_schema().以下是例子:

一些注意点:

1. 切勿为了缓存而缓存。比如从数据库查询一条结果,将一条结果写入数据库,这些都是很轻的操作,没必要使用缓存。推荐使用devel模块来查找代码方面性能瓶颈并进行针对性的优化。
2. 缓存表存数的数据都是blob类型的,切勿做与cache表的join查询。
3. 切记缓存中的数据不是永久存储的。任何调用cache_clear_all的代码都会清空缓存。因此无法通过重复计算获取的数据,切勿存储到缓存表。

希望本文所述对大家的drupal建站有所帮助。

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • Drupal7的cache缓存开发实例教程
  • Drupal7之drupal_static函数用法解析

相关文章

  • 2017-05-13drupal将Date表单元素月日年的顺序改造为年月日的方法
  • 2017-05-13drupal实现在node节点的评论下面添加内容的方法
  • 2017-05-13drupal的workbench moderatoin模块对node的修改方法
  • 2017-05-13drupal函数node_get_types用法详解
  • 2017-05-13DRUPAL6中定义hook_menu参数的方法
  • 2017-05-13Drupal CMS可以制作的16种类型网站
  • 2017-05-13drupal创建拖动排序表格的方法
  • 2017-05-13drupal实现输出可点击表头排序表格的方法
  • 2017-05-13drupal输出用户头像地址的方法
  • 2017-05-13定制Drupal首页的方法

文章分类

  • dedecms
  • ecshop
  • z-blog
  • UcHome
  • UCenter
  • drupal
  • WordPress
  • 帝国cms
  • phpcms
  • 动易cms
  • phpwind
  • discuz
  • 科汛cms
  • 风讯cms
  • 建站教程
  • 运营技巧

最近更新的内容

    • drupal中创建hook_user并调用drupal的mail函数发送email实例
    • Drupal第三方模块汇总
    • drupal的url传值和表单传值分析
    • 批量导入XML数据到drupal系统的方法
    • Drupal7的cache缓存开发实例教程
    • drupal模块开发分析
    • drupal常用判断函数汇总
    • drupal6上传中文文件名附件乱码问题解决方法
    • drupal按分类进行文章排序的实现方法
    • 定制Drupal首页的方法

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有