小李SEO博客

网站优化服务

dedecms程序缓存原理分析

织梦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');?> ".@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整套缓存体系。

上一篇:dedecms列表页面ul及li标签循环调用 下一篇:织梦cms发布文章按发布时间排序
织梦cms相关文章阅读
  • 织梦cms网站程序运行环境要求

    小李网络公司介绍织梦cms程序运行环境知识.包括运行环境要求运行环境是什么意思net运行环境运行环境有哪些python运行环境安装python的运行环境labview运行环境要求java的运行环境是什么....

  • 织梦cms获取文章里第一张图片

    小李网络公司介绍织梦cms获取文章里第一张图片知识,包括织梦cms建站教程dedecms织梦系统织梦自动获取长尾词织梦获取文章内容织梦获取文章id织梦当前栏目织梦获取子栏目dedecms首页织梦获取顶...

  • 织梦cms自定义表单时间戳值类型的转换方法

    小李网络公司介绍织梦cms自定义表单时间戳值类型知识,包括DEDECMS自定义表单时间戳转换成常规时间方法及添加时间方法.自定义表单系统时间戳是什么数据类型timestamp时间戳自定义表单 数据库...

  • 织梦cms实现首页顶部会员登陆框的方法

    小李网络公司介绍织梦cms实现首页顶部会员登陆框知识,包括 怎么实现dedecms在首页登录会员功能? - 搜外问答,dedecms更新首页织梦会员功能模板dedecms怎样做论坛dedecms好吗dedecms主页在dedecms哪里改...

  • 织梦cms在plus目录调用当前模板方法

    小李网络公司介绍织梦cms在plus目录调用当前模板知识,包括dede织梦在plus目录调用当前模板head.htm,footer.htm方法.footer什么意思html页脚标签footer标签什么意思footer标签怎么用dedecms标签怎么用footer标...

  • 织梦cms5.7后台增加更新文章时间按钮

    小李网络公司介绍织梦cms5.7后台增加更新文章时间按钮周四.包括dedecms模板接收变量dedecms增加关键词dedecms加系统变量dedecms变量的使用dedecms增加缩略图dedecms增加行距....

  • 织梦cms鼠标移上显示全部标题方法

    小李网络公司介绍织梦cms鼠标移上显示全部标题方法知识,包括鼠标一点就往下移怎么办鼠标能点,但是不能移动鼠标一直自己移动怎么办移动鼠标没反应怎么办怎么把表格标题往上移如何将标题...

  • 织梦cms表单提交发送到指定邮箱与前台设置

    小李网络公司介绍织梦cms表单提交发送到指定邮箱与前台设置知识,包括提交表单的4种方式发送至邮箱表单数据的提交方法表单的提交方法表单提交有哪几种方式战网邮箱提交不了html里面表单提...

  • 织梦cms网站去掉下载长途图片和资源勾选教程

    小李网络公司介绍织梦cms网站去掉下载长途图片和资源勾选教程知识,包括水印去除网站哪个软件可以去掉水印可以去掉水印的软件网页两边的广告怎么去掉视频上显示网址怎么去掉手机网站广...

  • 织梦cms循环次数方法并做条件判断标签代码

    小李网络公司介绍织梦cms循环次数方法并做条件判断知识,包括dedecms织梦的循环次数的方法并做条件判断的教程.dedecms织梦系统织梦导航双层循环织梦栏目循环隐藏栏目怎么调取dedecms循环tabled...

  • 织梦cms下载统计for链接到真实软件地址

    小李网络公司介绍织梦cms下载统计for链接到真实软件地址知识,包括dede获取点击次数dede主页链接名dede交叉链接dede链接相应列表dede更多链接标签dede自定义链接dede调用栏目链接dede专题链接....

  • 织梦cms用SQL获取文章静态地址教程

    小李网络公司介绍织梦cms用SQL获取文章静态地址教程知识,包括织梦静态评论插件dedecms静态页面织梦静态插件织梦tag标签静态dedecms更新静态tagdedecms表单调用dedecms表单提交dedecmsjs表单提交....

SEO公司排名
 
QQ在线咨询
SEM竞价推广
137-1296-7640
SEO优化外包
137-1296-7640