将军网-专注于免费分享最新的QQ活动技术软件教程!

给数据量较大的Emlog网站缓存瘦身

将军网 技术教程

给数据量较大的Emlog网站缓存瘦身

EMLOG的缓存说明
Emlog程序以其轻巧简单的特点受到不少人的青睐,但是对于一个网站数据量比较大的EMLOG网站来说,EMLOG程序自带的缓存功能就有一点鸡肋了。所以这里分享一下如何给EMLOG网站的缓存进行精简。
在EMLOG缓存中,最凶残的部分莫非就是“文章分类缓存”和“文章标签缓存”(文章别名缓存也是,但是我一般没用文章别名),这俩缓存简直惨无人道。这两个缓存分别是干什么的呢?文章分类缓存,存的是每一篇文章所对应的分类id和分类名,注意是每一篇文章,那么1w篇文章的话,这里就会存有1w个对应关系。文章标签缓存同理。而它的作用仅仅是在文章内容页告诉你,这篇文章的分类是什么。
而当你的文章数量比较多的时候,你每更新一片文章或者分类就要刷新一次这个存储量异常庞大的缓存文件,导致点了文章发布之后半天还没发布成功,甚至会因为缓存过大而导致文章发布失败。
精简EMLOG的缓存
那么,我建议文章数量多的EMLOG网站可以去除掉“文章分类缓存”和“文章标签缓存”。具体方法为(以文章分类缓存为例),找到根目录下面include下面lib下面的cache.php文件。找到如图的方法,注释掉:
给数据量较大的Emlog网站缓存瘦身
为表示方法的完整性,我象征性的将缓存数据设置为一个空数组,这样,缓存就不会被写入了。
精简缓存带来的后果
精简这两处缓存后,将大大提升管理员发布文章的提交速度,不会因为数据太大而导致后台好像很吃力。
但是,没有了这两个缓存,你的网站模板中,在文章页面调用网站分类和文章标签的默认函数就无效啦,这个得自己写。由于我的网站没有使用标签,目前只注销了文章分类缓存,所以这里只写了文章页面调用文章分类的方法。大家可以参考一下:
    // 获取文章分类 // 分类id从数据库取 // 分类名仍然从分类缓存取 // 使用方法,在echo_log页面 $log_sort=getLogSort($logid); // echo $log_srot['sortname']; //得到分类名 // echo Url::sort($log_sort['sortid']); //得到分类链接 function getLogSort($logid){ $db = MySql::getInstance(); $sql = " SELECT `sortid`,`gid` FROM `".DB_PREFIX."blog` WHERE `gid` = {$logid} "; $row = $db -> once_fetch_array($sql); global $CACHE; $sort_cache = $CACHE->readCache('sort'); return array( 'sortid' => $row['sortid'], 'sortname' => $sort_cache[$row['sortid']]['sortname'] ); }

没了缓存就得取数据库,这本身就是缓存的作用!另外,如果你在后台开启的链接模式是分类别名模式,则需要修改include下面lib下面的url.php,修改获取文章链接的方法static function log($blogId),首先将此方法修改成static function log($blogId,$sortId);然后将该方法下面的$log_sort = $CACHE->readCache('logsort')替换成$log_sort = $CACHE->readCache('sort');并且把$log_sort[$blogId]替换成$log_sort[$sortId];
解释:本来生成文章链接的时候,获取分类别名是从文章分类缓存中获取的,现在这个缓存被去掉了,所以获取分类别名就只能从“侧边栏分类缓存”(该缓存其实就是整个网站的分类缓存,该缓存是没有去掉的)中获取。所以我们在生成文章链接的时候就需要增加分类id的参数。

标签: 暂无标签

免责声明:

本站提供的资源,都来自网络,版权争议与本站无关,所有内容及软件的文章仅限用于学习和研究目的。不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负,我们不保证内容的长久可用性,通过使用本站内容随之而来的风险与本站无关,您必须在下载后的24个小时之内,从您的电脑/手机中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。侵删请致信E-mail: av0000@88.com 云盘默认下载密码:1214

同类推荐
评论列表

热门文章
随机推荐
热门标签