建站学习网,专业提供各类建站教程,网页素材,SEO资讯等建站资源!

网站模板_网站源码_网站素材_建站教程_建站学习网

当前位置:建站学习网 > 织梦教程 > 故障问题 >

织梦dedecms缓存原理分析

更新时间:2016-12-22整理编辑:建站学习网阅读:0
  织梦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)的一串字符串获取的。通过分析我们可以看出

  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的文件缓存。

  $key = substr ( $key, 0, 2 ) . '/' . substr ( $key, 2, 2 ) . '/' . substr ( $key, 4, 2 ) . '/' . $key;

  $tmp ['data'] = $value;

  $tmp ['timeout'] = time () + ( int ) $timeout;

  $cache_data = "<?php exit('dedecms');?>\n\r".@serialize ( $tmp );

  return @PutFile ( DEDEDATA . "/cache/$prefix/$key.php", $cache_data);

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

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

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

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

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

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

本文网址:https://www.dedexuexi.com/dedejiaocheng/gzwt/1350.html

本站部分文章搜集与网络,如有侵权请联系本站,转载请说明出处。

收藏此文 赞一下!() 打赏本站

如本文对您有帮助,就请建站学习网抽根烟吧!

支付宝打赏
微信打赏
织梦cms使用关键词关连文章无效的解决方法
« 上一篇2016年12月22日
织梦cms系统被挂马解决方案
2016年12月22日下一篇 »
  • 织梦CMS缩略图失真模糊的完美解决方法
    0阅读
    DedeCMS默认的生成缩略图只有一个规格大小的尺寸,不能满足大部分的模版需求,这样就会造成很多模版生成的缩略图都是不清晰,失真和模糊的,建站学习网今天就教大家如何避免DedeCMS生成的缩略图失真模糊。 具体方法如下: 一、打开设置:系统-附...
  • 解决{dede:field.body/}不解析问题
    0阅读
    找到文章模型,字段管理,增加一段代码模型字段配置,填上可能是什么时候这个地方被删除掉了,加上这段代码
  • 建站学习网教你织梦Dedecms如何打补丁?
    0阅读
    织梦建的网站被攻击了,被挂马了,很多新手朋友会遇到,虽然网站上的挂马,空间提供商会帮助清除,但网站是因为没有定时更新网站补丁才容易受攻击的。 所以今天就把织梦dedecms网站打补丁的方法总结一下,方便菜鸟站长们修补网站。 用织梦dedecms建立的网站,需要经常打补丁来保证网站的安全,但是...
  • dedecms如何做好安全防范挂马
    0阅读
    Dedecms 做为国内使用最为广泛使用人数最多的CMS之一,相信很多站长和我一样选择了它,它的优点我就不多说了。可是令很多站长头疼的是,用dedecms建的站经常被人莫名其妙的挂马,造成满页黑链、广告、弹框,令人气愤;更为可怕的是,还有可能被搜索引擎惩罚,辛辛苦苦建立的站,眼睁睁的看它权重下降,收...
  • 当你的dedecms网站被挂马了,要如何处理?
    0阅读
    DeDeCMS织梦建站系统,是时下最热门和流行的开源cms建站系统,尤其是在SEO行业中,用织梦建站的占比更是遥遥领先的,因为免费、开源的特点,织梦形成当前的趋势,同样的,由于免费、开源,更多的人去研究和挖掘织梦的一些漏洞,很多小白站长几乎都遭受到黑客的入侵 如果您的网站被挂马,我觉得你应该从以下几...
 
QQ在线咨询