双色球基本走势图大赢家|中彩双色球基本走势图|
返回旧版| 微信建站| 我要建站 | 建站学习 | 加入收藏
DEDECMS当前位置:首页 > cms教程 > 综合cms > DEDECMS > 正文

织梦dedecms缓存原理分析

发布时间:2019-11-01 10:44:01   来源:   点击:
织梦dedecms程序里面,有很多的地方都用到了缓存。

  在织梦dedecms里面,不但存在模板缓存,重要数据的文件缓存。而且还引入了memcache缓存。首先我们看织梦dedecms的cache.helper.php,这个文件里面的函数主要有三个。 SetCache(),GetCache(),DelCache()三个关于dedecms缓存的操作函数。

  织梦dedecms缓存主要存在文件缓存和memcache缓存两种。当后台配置了memcache服务器信息的时候。dedecms cache他会优先的选择使用memcache来缓存,如果不存在memcache服务器配置信息。那么将起用dedecms的文件缓存方式。

  首先我们看dedecms的SetCache()。很简单, function SetCache($prefix, $key, $value, $timeout = 3600, $is_memcache = TRUE),我们先看这条,他就是通过使用key/value的方式来设置dedecms的缓存,而$prefix更多的是前缀,而$key就是通过对md5($sql)的一串字符串获取的。通过分析我们可以看出
  1. if (! empty ( $cache_helper_config['memcache'] ) && $cache_helper_config['memcache'] ['is_mc_enable'] === 'Y' && $is_memcache === TRUE) 
  这段代码告诉我们,如果你是存在memcache服务器,并且该服务器可用。那么将优先使用memcache缓存。$result = $GLOBALS ['mc_' . $mc_path ['host']]->set ( $key, $value, MEMCACHE_COMPRESSED, $timeout ),通过设置memcache来完成对sql数据库查询的缓存。如果不存在,那么将起用dedecms的文件缓存。
  1. $key = substr ( $key, 0, 2 ) . '/' . substr ( $key, 2, 2 ) . '/' . substr ( $key, 4, 2 ) . '/' . $key; 
  2.  
  3.   $tmp ['data'] = $value; 
  4.  
  5.   $tmp ['timeout'] = time () + ( int ) $timeout; 
  6.  
  7.   $cache_data = "<?php exit('dedecms');?>\n\r"[email protected] ( $tmp ); 
  8.  
  9.   return @PutFile ( DEDEDATA . "/cache/$prefix/$key.php", $cache_data); 

  在这里我们可以很清楚的认识到。如果dedecms应?#30431;?#26159;结合的文件和memcache缓存两种方式的,为了?#20048;?#32531;存文件被盗用,我们可以在缓存文件的前头增加exit字符。当你需要使用的时候,完全可以替换掉,当正常的变量还原。

  而dedecms缓存的key和缓存文件目录的生成,是通过对md5($key)后的值取某几个字符来做文件夹生成目录的。这样的?#20040;?#26159;避免了很多缓存文件在指定的某几个缓存目录里面,造成缓存负?#21830;?#22823;,而影响缓存。

  而取的dedecms的缓存的方式主要以下方式 function GetCache($prefix, $key, $is_memcache = TRUE)

  我们可以分析出,当$key=md5($key)之后,先去memcache中取得,如果不存在,那么才考虑去dedecms的文件缓存中获取。

  而织梦dedecms删除缓存也一样, function DelCache($prefix, $key, $is_memcache = TRUE)先删除memcache中的。

  如果他不存在。将直接在织梦dedecms文件缓存中删除,最终完成dedecms整套缓存体系。

调用之前请先启用缓存助手函数
helper('cache');

相关栏目
热门文章
最新图文
评论排行
版权所有:郑州腾石网络科技有限公司 备案信息:豫ICP备18019117号
站长QQ:2863868475 业务合作咨询:15137100750(同微信)
本站所有投放的广告是有其他网站提供,不代表本站立场,同时网站首页广告位对外出租详情咨询本站站长!同时欢迎广大站长加入个人建站团队
  • 建站?#22836;?a target="_blank" href="tencent://message/?uin=2863868475&&Site=sc.admin5.com&&Menu=yes">
  • CMS仿站
  • CMS学习
  • 技术交流群:336572814
双色球基本走势图大赢家
淘金盈娱乐城 足球e球彩实时开奖结果 3d绝杀号公式 3d彩票中奖图 卖炒河粉米粉赚钱吗 河北燕赵福彩排列七 北京pk10冠军走势图 麻将游戏大全 2008上证指数 秒速飞艇百度百科