博客之家
  • 博客首页
  • 博客導航
  • 好文分享
  • 文章投稿
  • 给我留言
首页 未分类 正文

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

博客之家 2016-07-02 06:29 未分类 阅读 8.29w

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的参数。



修改完之后,在模板中生成链接的方法就变成了<?php echo Url::log($logid,$sortid);?>(注意:后台文章列表中的预览会没有分类别名,但是不重要)



修改后的url.php中的static function log();

        /**
         * 获取文章链接
         */
        static function log($blogId,$sortId) {
            $urlMode = Option::get('isurlrewrite');
            $logUrl = '';
            $CACHE = Cache::getInstance();

            //开启文章别名
            if (Option::get('isalias') == 'y') {
                $logalias_cache = $CACHE->readCache('logalias');
                if (!empty($logalias_cache[$blogId])) {
                    $logsort_cache = $CACHE->readCache('sort');
                    $sort = '';
                    //分类模式下的url
                    if (3 == $urlMode && isset($logsort_cache[$sortId])) {
                        $sort = !empty($logsort_cache[$sortId]['alias']) ? 
                            $logsort_cache[$sortId]['alias'].'/' : '';
                            //$logsort_cache[$blogId]['name'];
                        //$sort .= '/';
                    }
                    $logUrl = BLOG_URL . $sort . urlencode($logalias_cache[$blogId]);
                    //开启别名html后缀
                    if (Option::get('isalias_html') == 'y') {
                        $logUrl .= '.html';
                    }
                    return $logUrl;
                }
            }

            switch ($urlMode) {
                case '0'://默认:动态
                    $logUrl = BLOG_URL . '?post=' . $blogId;
                    break;
                case '1'://静态
                    $logUrl = BLOG_URL . 'post-' . $blogId . '.html';
                    break;
                case '2'://目录
                    $logUrl = BLOG_URL . 'post/' . $blogId;
                    break;
                case '3'://分类
                    //$log_sort = $CACHE->readCache('logsort');
                    $log_sort = $CACHE -> readCache('sort');
                    if (!empty($log_sort[$sortId]['alias'])) {
                        $logUrl = BLOG_URL . $log_sort[$sortId]['alias'] . '/' . $blogId;
                    //} elseif(!empty($log_sort[$sortId]['name'])) {
                        //$logUrl = BLOG_URL . $log_sort[$sortId]['name'] . '/' . $blogId;
                    } else {
                        $logUrl = BLOG_URL . $blogId;
                    }
                    $logUrl .= '.html';
                    break;
            }
            return $logUrl;
        }



文章作者:一路上,欢迎大家投稿: https://www.likinming.com/post-87.html

文章作者:博客之家
文章標題:给数据量较大的Emlog网站缓存瘦身
文章鏈接:https://www.likinming.com/930.html
本站所有文章除特別聲明外,均採用 CC BY-NC-SA 4.0 許可協議,轉載請註明來自博客之家 !

📚 推荐阅读

  • 网站外链跳转页面/外链本地化代码的一些改善方法分享
  • 学会为人处世
  • 或许眼泪是最好的记忆
  • 一个普通的网站优化人员贵在坚持
  • 人生的确很累,看你如何品味?
  • 红枣的功效与作用
  • 第一场雪-随感
  • 当你老了,一生最后悔什么

人生的三大陷阱
« 上一篇 2016-07-03
越来越多的人热衷于蜂蜜美容,秘密何在?
下一篇 » 2016-07-01

发表评论

请输入验证码

评论列表(4条)

搜尋有價值的

热门文章

  • TOP1
    博客之家今天正式上線
    14年前 202.38w
  • TOP2
    博客之家导航源码分享
    13年前 102.62w
  • TOP3
    李明的鲜果店
    9年前 87.76w
  • TOP4
    iPhone6 ios8不显示通话记录处理方法
    12年前 60.42w
  • TOP5
    给我们投稿
    14年前 56.85w
  • TOP6
    超级SEO外链工具源码分享
    14年前 52.06w
  • TOP7
    超级SEO外链工具
    14年前 40.03w
  • TOP8
    我的人生我作主——李明
    13年前 39.83w
  • TOP9
    腾讯电脑管家误报网站的申诉方法
    9年前 34.42w
  • TOP10
    博客之家改版成功
    14年前 29.41w
  • TOP11
    利用:before选择器给你的网站Logo添加扫光特效
    11年前 27.87w
  • TOP12
    多做运动的好处
    13年前 24.61w

最新评论

  • 博客之家6 个月前
    藏福守心,遠離是非,日子平穩,歲月安康
  • 张赛博客6 个月前
    有时候,错误的路上,努力越多,反而是沉没...
  • atmp1 年前
    心安即是归处
  • 博客之家1 年前
    @Eps工具网:Hi,午安...
  • Eps工具网1 年前
    早晨起来
  • Eps工具网1 年前
    来逛逛
  • Eps工具网1 年前
    Eps工具网
  • 今日头条新闻2021-07-01 17:33
    文章不错交个朋友
  • 栾。2021-05-04 22:59
    看看
  • 夏草2021-02-22 10:27
    远古外星人 (2009-2019)史前...

友情連結

  • A TECH ONE
  • EPS工具網
  • 2W工具網
  • 小杰工具箱
  • 舍力博客
  • 提交收錄
Copyright © 2026 博客之家 版權所有
關於本站| 免責聲明| sitemap| 簡體| 繁體
内容受版权保护,禁止复制!