软件 聊天 安全 视频 浏览器 下载 系统 办公 教学 输入法
免费 域名 空间 相册 邮箱 资源 网赚 试用 优惠 工具
教程 设计 三维 学院 办公 网页
素材 PSD 矢量 网页 PPT 动画
美女 唯美 大生活 美图 风景 时尚艺
资讯 新闻 专题 热点
您的位置: 广信之家 > 网络学院 > 建站资讯 > 文章正文

织梦DedeCMS的问答模块ask缓存机制详解

时间:06-08 22:37 来源:广信之家 整理:广信小编 我要评论(0)
字号:T|T
内容提要:
  织梦DedeCMS在国内算是比较流行的开源cms,大多数个人网站及企业网站都选用了织梦DedeCMS,诸多用户对织梦DedeCMS的缓存结构却并不是很了解,这里我就对织梦DedeCMS的缓存机制进行一下讲解。

  织梦DedeCMS在国内算是比较流行的开源cms,大多数个人网站及企业网站都选用了织梦DedeCMS,诸多用户对织梦DedeCMS的缓存结构却并不是很了解,这里我就对织梦DedeCMS的缓存机制进行一下讲解。

  织梦DedeCMS其缓存文件放在data目录下的cache、tplcache、sessions文件中,详细了解的话,我推荐:增强织梦DedeCMS“更新系统缓存”清理沉余缓存的功能 http://www.gxchina.com/edu/11185.html

在本节中,我主要以ask问答模块为例来看看其缓存的使用。

1.最先调用ask/index.php,缓存通过调用语句
  require_once(DEDEASK.'/data/common.inc.php');
  实现;

2.ask/data目录下的文件为生成缓存的主要文件,在ask/data/common.inc.php中调用了
  //载入分类
  require_once DEDEASK.'/data/asktype.inc.php';
  //载入积分排行
  require_once DEDEASK.'/data/scores.inc.php';
  这两个文件就是生成对应缓存文件和读取缓存数据的关键所在。

3.(1)前台ask/data/asktype.inc.php先判断ask/data/cache/asktype.inc文件是否存在,如果存在则直接读取该缓存文件的数据放在$asktypes中,否则从数据库中读取数据放在$asktypes中并写入对应缓存文件中。
  (2)后台admin可以在模块/问答管理/栏目管理增加分类并提交后会更新缓存,实现代码为ask/controller/admin/asktype.php中的
  //更新栏目缓存
  function updatecache()
  {
    $asktypes = $this->type->get_alltype();
    $path = DEDEASK."/data/cache/asktype.inc";
    $row = serialize($asktypes);
    $configstr = "<"."?php\r\n\$asktypes = '".$row."';";
    file_put_contents($path, $configstr);
  }
  通过$this->updatecache();
  更新了对应的缓存文件。

4.ask/data/scores.inc.php是通过时间来控制积分的缓存数据,如果超过了缓存时间则从数据库读取数据,否则文件存在则读取文件缓存数据,文件不存在则为空;
  生成或更新缓存文件的时间也放在文件中缓存。
  注意transport()函数中的
  $path = $cfg_basehost.'/'.APPNAME."/?ct=index&ac=scores";
  对应的文件是ask/controller/index.php中动作
  //更新总积分排行
  function ac_scores()
  {
    $memberlists = $this->scores->get_scores();
    if(count($memberlists) > 0)
    {
      $row = serialize($memberlists);
      $configstr = "<"."?php\r\n\$memberlists = '".$row."';";
      file_put_contents(DEDEASK.'/data/cache/scores.inc', $configstr);    
    }
  }

 织梦DedeCMS的问答模块ask缓存机制详解

总结:后台管理生成的数据据我所见都会被缓存,开源实现的主要是文件缓存,一般也提供了memcache等缓存接口,实现的方式就各有不同!

 

    相关阅读:

    顶一下
    (0)
    0%
    踩一下
    (0)
    0%
    免责申明:以上内容仅代表原创者观点,其内容未经本站证实,织梦DedeCMS的问答模块ask缓存机制详解对以上内容的真实性、完整性不作任何保证或承诺,转载目的在于传递更多信息,由此产生的后果与织梦DedeCMS的问答模块ask缓存机制详解无关;如以上转载内容不慎侵犯了您的权益,请联系我们将会及时处理。
    [责任编辑:广信小编]

    精彩图文

    登录 (请登录发言,并遵守 相关规定)
    如果你对广信之家有任何意见或建议,请到交流平台反馈。到留言板反馈