小李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发布文章按发布时间排序知识,包括织梦按新增字段名排序dedecms文章日期dedecms文章代码dedecms生成文章dedecms同类文章dedecms文章页面dedecms文章描述dedecms文章顺序....

  • 织梦cms提示function GetInnerText()解决办法

    小李网络公司介绍织梦cms提示function GetInnerText()解决办法知识,包括织梦提示Call to a member function GetInnerText()的解决办法,function的用法function什么意思啊function tobe to do 的用法Food functionthe function o...

  • 织梦cms{dede:channel type='son'} 调用栏目标签用法

    小李网络公司介绍织梦cms{dede:channel type='son'} 调用栏目标签用法知识,包括织梦dedecms的channel标签调用的使用方法介绍 - 百度经验,织梦dede:channel标签调用子栏目内容的方法-DEDECMS....

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

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

  • 织梦cms程序GBK版安装sphinx全文索引查询无结果解决方法

    小李网络公司介绍织梦cms程序GBK版安装sphinx全文索引查询无结果解决方法知识.包括sphinx中文mysql全文索引是什么rosalyn sphinxmysql全文索引 模糊查询sphinx mothmysql创建全文索引dedecms全文索引the sph...

  • 织梦cms网站DIGG功能介绍

    小李网络公司介绍织梦cms网站DIGG功能介绍知识,包括织梦Dedecms插件:digg功能 -管理资料,最模板介绍DEDECMS织梦的DIGG功能-编程脚本学习网,plus/digg_ajax.php,织梦dedecms首页添加digg顶一下的修改方法....

  • 织梦cms网站tag标签伪静态实现方法

    小李网络公司介绍织梦cms网站tag标签伪静态实现方法知识,包括iis url重写规则织梦伪静态2003iis伪静态组件织梦仿站教程傻瓜式织梦伪静态助手url重写模块iis8wordpress用iisiis增加伪静态之梦l插件...

  • 织梦cms网页热门关键字代码

    小李网络公司介绍织梦cms网页热门关键字代码知识,包括织梦热门搜索关键字调用代码.织梦DedeCms热门搜索关键字调用代码hotwords_网站技巧.织梦热门搜索关键字调用代码-织梦帮....

  • 织梦cms生产google地图xml代码

    小李网络公司介绍织梦cms生产google地图xml代码知识,包括帝国cms和织梦哪个好织梦cms建站教程cms是什么意思啊cms内容管理系统织梦官网织梦cms织梦 建站织梦源码织梦cms收费吗织梦cms后端模板....

  • 织梦cms摘要调用参数[field:info/]使用方法

    小李网络公司介绍织梦cms摘要调用参数[field:info/]知识,包括dede摘要调用参数[field:info/] 使用用方法_织梦58,dede怎么调用代码dede文章点击数dede调用页面代码dede调用文档dede图文调用dede调用顺序de...

  • 织梦cms判断seo标题是否为空的解决方法

    小李网络公司介绍织梦cms判断seo标题是否为空知识,包括带seo的dedecms模板discuz论坛seo该如何设置织梦标题被更改dedecms标题切换dedecms标题长排版dedecms导出标题织梦标题dedecms页面标题....

  • 织梦cms编辑框显示不出来的问题

    小李网络公司介绍织梦cms编辑框显示不出来知识.包括织梦dede编辑框显示不出来是怎么回事_教程_游龙模板网,帝国cms和织梦哪个好织梦 建站dede标记教程dede888织梦官网织梦免费源码织梦标签ded...

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