ecshop缓存清理-限制或禁用ECShop缓存

2023-11-10

ECSHOP的缓存存放在templates/caches/文章夹下,时间长了这个文件夹就会非常庞大,拖慢网站速度。 还有很多情况我们不需要他的缓存。本文介绍禁用ECSHOP缓存的方法。

  ECSHOP的缓存有两部分,一部分是SMARTY的页面缓存;另一部分是SQL查询结果的缓存。这两部分都是保存在 templates/caches/文件夹下。只要我们分别关闭这两个功能,就可以完全禁用ECSHOP的缓存。当然你也可以根据自己的需要关闭其中某一 个。

  1.关闭SMARTY的缓存:
  打开includes/cls_template.php,找到下面一段

  if (file_put_contents($this->cache_dir . ‘/’ . $cachename . ‘.php’, ‘<?php exit;?>’ . $data . $out) === false)
       {
           trigger_error(’can/’t write:’ . $this->cache_dir . ‘/’ . $cachename . ‘.php’);
       }

  将这一部分注释掉即可,改成

/*
  if (file_put_contents($this->cache_dir . ‘/’ . $cachename . ‘.php’, ‘<?php exit;?>’ . $data . $out) === false)
       {
           trigger_error(’can/’t write:’ . $this->cache_dir . ‘/’ . $cachename . ‘.php’);
       }
*/

  2.关闭SQL查询结果缓存
  打开includes/cls_mysql.php
  找到
  var $max_cache_time=3600;//最大的缓存时间,以秒为单位
  改为
   var $max_cache_time=0;//最大的缓存时间,以秒为单位

--------------------------------------------

如何限制或禁用ECShop缓存呢?按道理只要ftp登录到主机空间服务器,清除“templates/caches”文件夹下的缓存文件,但比较 安全稳妥的办法是进入ecshop网店后台点击右上角“清除缓存”按钮。还是完全禁用ecshop的缓存功能。

一、禁用ecshop部分数据表缓存
ecsh op里caches文件夹缓存文件包括sql查询结果缓存和SMARTY模板页面缓存。如果访 问网站的用户一多,这些临时的缓存数据都被保持在ECshop的“templates/caches”文件夹下。数据缓存对提高网店速度有一定作用,但缓 存文件一多也就过犹不及。有人说只对favourable_activity,goods_activity这2个表禁用缓存即可。
打开include/init.php,找到

PHP代码
  1.     
  2. $db ->set_disable_cache_tables( array ( $ecs ->table(’sessions’), $ecs ->table(’sessions_data’), $ecs ->table(’cart’)));   

修改为

PHP代码
  1.     
  2. $db ->set_disable_cache_tables( array ( $ecs ->table(’sessions’), $ecs ->table(’sessions_data’), $ecs ->table(’cart’), $ecs ->table(’favourable_activity’), $ecs ->table(’goods_activity’)));  

二、完全禁用ecshop缓存
定期要登录ecshop网店后台清除缓存文件,对于懒人来说,这也挺嫌麻烦的。那干脆完全禁用ecshop缓存吧。参考小虫的禁用echsop缓存 文章,小虫的具体代码是2.6.0左右的版本。2.7的ecshop禁用缓 存修改方法类似:

1. 用editplus 打开include/cls_template.php,把下面代码注释掉:

PHP代码
  1.     
  2. /* if (file_put_contents($hash_dir . ‘/’ . $cachename . ‘.php’, ‘<?php exit;?>’ . $data . $out, LOCK_EX) === false)     
  3.                          {     
  4.                              trigger_error(’can/’t write:’ . $hash_dir . ‘/’ . $cachename . ‘.php’);     
  5.                          } */   

2.用editplus 打开include/cls_mysql.php,找到 max_cache_time = 300,把300改为0 即可

三、templates/compiled下的文件是否可以清空?
templates/compiled下的文件是模板编译后文件,可以清空。当用户浏览网店后又会重新生成。templates文件夹下的主要是 caches里缓存文件太多,你可以定期清空或完全禁用ecshop缓存。

----------------------------------------------

关于清除缓存的建议!!

发现现在的清除缓存做的比较粗!和之前没大变化啊!和2.0.5一样.
只要后台 随便一个修改的操作,整个缓存就都没了!用的都 是$smarty->clear_all_cache();
缺点:如果我有10万商品 ,:),而且都被浏览过,我后台一个操作就要清楚15万多缓存文件 :)似乎极限了点
只是举例!!,希望ECSHOP更加完美而已!

smarty里面不是有这个函数么?
clear_cache(),我小修改了下,增加了可以指定删除 某个目录 下的缓存,用处是:可方便的删除商品的分类 缓存!

2.0.5上我是这么改的,另外在根目录建立一个缓存目录templates_caches,里面建立 article,article_cat,goods,goods_cat,4个文件夹分别放文章内容,文章列表 ,商品内容,商品列表的缓存
例子:对商品,文章部分的修改
前台 init.php和后台init.php加入如下代码 ,我为了方便直接加在config.php里面了
  1. //缓存目录设置
  2. define('ECS_ROOT', substr(dirname(__FILE__), 0, -8));//前后台数字当然不一样了:)
  3. //文章缓存
  4. $cache_dir_article = ECS_ROOT.'./templates_caches/article';
  5. $cache_dir_article_cat = ECS_ROOT.'./templates_caches/article_cat';
  6. //商品缓存
  7. $cache_dir_goods = ECS_ROOT.'./templates_caches/goods';
  8. $cache_dir_goods_cat = ECS_ROOT.'./templates_caches/goods_cat';
复 制代码
前台商品内容和分类缓存时间 单独设置长一些,如内容一个月,分类1天
修改后台,商品单独修改的地方只删除这个商品内容的缓存
只要有修改操作就删除商品分类缓存和首页 缓存!加入如下
$smarty->clear_cache(null, null, null, null, $cache_dir_goods_cat);//zouql:删除商品目录缓存,默认缓存时间
$smarty->clear_cache('goods.html', $goods_id, null, null, $cache_dir_goods);//zouql:删除商品缓存,默认缓存时间
还有广告 管理 等等等等等等等等地方要改!
前台用户 发表评论后自动 删除本商品缓存等等..........


function clear_cache($tpl_file = null, $cache_id = null, $compile_id = null, $exp_time = null, $cache_dir = null )
{

      if (!isset($cache_dir))
$cache_dir = $this->cache_dir;

if (!isset($compile_id))
         $compile_id = $this->compile_id;

       if (!isset($tpl_file))
         $compile_id = null;

       $_auto_id = $this->_get_auto_id($cache_id, $compile_id);

       if (!empty($this->cache_handler_func)) {
         return call_user_func_array($this->cache_handler_func,
                              array('clear', &$this, &$dummy, $tpl_file, $cache_id, $compile_id, $exp_time));
       } else {
         $_params = array('auto_base' => $cache_dir,
                        'auto_source' => $tpl_file,
                        'auto_id' => $_auto_id,
                        'exp_time' => $exp_time);
         require_once(SMARTY_CORE_DIR . 'core.rm_auto.php');
         return smarty_core_rm_auto($_params, $this);
       }

}

---------------------------------------------

定期清除缓存页面插件

软件类型: 国产软件 授权方式: 共 享软件 界面语言: 简体中文 软件大小: 未 知 文件类型: .rar 运行环境: Win2003,WinXP,Win2000,Win9X 软件等级: ★★★★★ 发布时间: 2009-08-26 官方网址: http:// 演示网址: http:// 下载次数: 47
软件介绍

利用ECSHOP的计划与任务清除过多的缓存页面 文件
重要说明:
1.适用于utf-8编码;
2.原下载 包内languages的路径有错误,正确的是:languages/zh_cn /cron/myclr.php

大家快出来列队欢迎 wutao0808 ,
wutao0808 的文件经测试 没有问题,不会破坏系统
我在此贴中做个备份,下面第一个为楼主的文件,清楚缓存,但不清除模板的编译   直接复制到商城的根目录下即可

下面的这个文件是我稍做修改 其中做了注释 ,默认为清除全部文件(包括缓存和模板编译 ),如果只需清楚缓存文件,注释掉

clear_all_files(); 改为 //clear_all_files();

将清除缓存的取消注释 //clear_cache_files(); 改为   //clear_cache_files(); 即可

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ecshop缓存清理-限制或禁用ECShop缓存 的相关文章

  • 多个连接到同一个表

    我有这组表格和数据 CREATE TABLE item id INT PRIMARY KEY name VARCHAR CREATE TABLE property id INT PRIMARY KEY name VARCHAR CREATE
  • Django 查询:“datetime + delta”作为表达式

    好吧 我的问题如下 假设我有下一个模型 这是一个简单的情况 class Period models Model name CharField field specs here start date DateTimeField field s
  • 从文件中读取未知长度的int数组

    如何从文件中读取未知长度的整数数组 我没有找到获取数组大小的方法 所以我尝试了一些临时字符串的东西 但我的代码爆炸了 有更好的想法吗 Use std vector std ifstream inFile fileName std vecto
  • 将错误保存到 MySQL 数据库

    我有一个 php 查询来更新 MySQL 数据库 请参见下文 sql update hr payroll set payroll number payroll number tax code tax bacs ref bacs ref pa
  • 如何避免这两个 SQL 语句之间出现死锁?

    我有两个存储过程在单独的线程中运行 在 SQL Server 2005 上运行 一个过程将新行插入到一组表中 另一个过程从同一组表中删除旧数据 这些过程在表上遇到了死锁DLevel and Model 这是架构 source barrams
  • 选定的非聚合值必须是关联组的一部分

    我在 Teradata 中有两个表 Table A 和 Table B 它们之间是 LEFT JOIN 之后我将创建 SELECT 语句 其中包含两个表中的属性 SELECT attribute 1 attribute 2 attribut
  • MySQL #1093 - 您无法在 FROM 子句中指定用于更新的目标表“赠品”

    I tried UPDATE giveaways SET winner 1 WHERE ID SELECT MAX ID FROM giveaways 但它给出了 1093 您无法指定目标表 赠品 进行更新FROM clause 本文 ht
  • 类中不允许使用不完整类型,但类模板中允许使用不完整类型

    以下为无效代码 struct foo struct bar bar x error field x has incomplete type struct bar int value 42 int main return foo x valu
  • Oracle内置函数元数据

    有没有办法获取 Oracle 内置聚合和其他功能的元数据 例如AVG STDDEV SQRT ETC 我需要知道对象 id 和参数元 In the SYS ALL OBJECTS查看我找不到任何有用的东西 我也尝试过搜索SYS ALL AR
  • ORACLE:未找到数据——但数据存在

    调试包过程 当实际上有数据时却找不到数据 仅测试 SELECT SELECT trim trailing from GL SECURITY as DUMMY FROM b2k user b2k WHERE sms username FUCH
  • 对 os.listdir 文件进行排序 Python

    如果已下载数年的数据 这些数据存储在具有以下命名约定的文件中 year day dat 例如 名为 2014 1 dat 的文件包含 2014 年 1 月 1 日的数据 我需要按天排序读取这些数据文件 2014 1 dat 2014 2 d
  • 在 Access 数据库中对列包含数字和字母的数据进行排序

    请帮助我 因为我一直无法做到这一点 选择此列 columnA 的访问 SQL 是什么 以便它返回一个结果集 其中的不同值首先根据数字排序 然后根据字母排序 这是列值 10A 9C 12D 11G 9B 10C 9R 8T 我尝试过 从 tb
  • db2中如何删除所有非数字字母

    我在 DATA 列 varchar 中有一些数据 如下所示 Nowshak 7 485 m Maja e Korabit Golem Korab 2 764 m Tahat 3 003 m Morro de Moco 2 620 m Cer
  • 如何从 SQL Server 中的 SELECT 进行更新?

    In SQL服务器 可以将行插入到带有INSERT SELECT陈述 INSERT INTO Table col1 col2 col3 SELECT col1 col2 col3 FROM other table WHERE sql coo
  • VS 13/VS 15 - 无法导入 SQL 片段

    我想在中创建 SQL 片段VS2013 and VS2015 我不知道为什么 但我在导入时遇到错误 在两个 VS 中 C sql snippet Missing or unspecified Language attribute 我的片段
  • postgresql 中的锁定表

    我有一个名为 games 其中包含一个名为 title 该列是唯一的 数据库中使用PostgreSQL 我有一个用户输入表单 允许他插入新的 game in games 桌子 插入新游戏的功能会检查之前输入的游戏是否存在 game 与相同的
  • 模板中的 bson.ObjectId

    我有一个具有 bson ObjectId 类型的结构 例如如下所示 type Test struct Id bson ObjectId Name string Foo string 我想在 html 模板中呈现它 Name Food a h
  • Postgres 中 -Infinity 和 Infinity 的适当值

    在一种情况下 我们必须在 Postgres DB 中存储 无穷大和 无穷大的值 应该考虑什么合适的值 如果没有 请建议最合适的替代方案 你实际上可以使用 infinity and infinity for FLOAT4 and FLOAT8
  • 如何使用sql脚本更改列的属性

    如何使用 sql 脚本更改列的属性 这是我尝试过但出现错误的方法 ALTER TABLE dbo tblBiometricPattern COLUMN BiometricPatternID TINYINT NOT NULL IDENTITY
  • 每行中非空列的计数

    我有一个包含 4 列的表 在第 5 列中我想存储前 4 列中有多少个非空列的计数 例如 其中 X 是任意值 Column1 Column2 Column3 Column4 Count X X NULL X 3 NULL NULL X X 2

随机推荐

  • 打开FTP server或者wftpd32提示 unknow error 10013

    打开FTP server或者wftpd32提示 unknow error 10013 问题描述 解决方法 重启ftp 参考 问题描述 近期在进行vxworks的相关环境搭建时打开FTP server总提示unknow error 由于没有详
  • 【无标题】h5跳转微信公众号关注页面

    h5跳转微信公众号关注页面 最近在做h5项目 有个需求是如果用户没有关注公众号 需要引导用户跳转至微信公众号关注页面 制作一个链接 点击该链接跳转到公众号关注页面 方法一 1 从公众平台登进入公众号 2 查看源代码 3 ctrl f 搜索
  • 使用ESP32-CAM和OpenCV实现图片获取

    我觉得这是一种廉价并且较为可靠的图像获取方案 目前无法输出视频流 因为我还不知道怎么提升传输速度 进入正题 ESP32 CAM模组在某宝上面差不多25块一个 不是M5STACK 我的图像传输方案是先在esp32上面获取图像的16进制字符串
  • 解决 dhcp服务后systemctl start dhcpd启动不了的问题

    输入 systemctl start dhcpd 报错 Job for dhcpd service failed because the control process exited with error code See systemct
  • JAVA异常(Throwable)

    目录 1 异常的产生和分类 严重问题Error 不严重问题Exception 2 异常处理 1 捕获异常 try catch finally 1 包含的结构 try catch finally 2 三种形式 3 注意 2 抛出异常 thro
  • 视频服务器(6) Kurento[1] rtsp2webrtc

    目录 一 安装Kurento 二 播放rtsp调研 三 播放RTSP实现 四 wsl ubuntu 安装使用 官网 https www kurento org 参考 Kurento流媒体开发环境搭建流程以及连接海康威视摄像头 参考 Kure
  • 腾讯面试题

    1 STL中的内存管理机制 STL的每一个容器都已经指定了缺省的空间配置器为alloc 下面来分析一下这个缺省的空间配置器 alloc空间分配的策略 考虑到小型区块可能造成的内存的碎片的问题 SGI设计了双层的配置器 第一层的配置器直接使用
  • 面试官:谈谈过滤器和拦截器的区别?

    一 拦截器和过滤器的区别 1 拦截器 Interceptor 只对action请求起作用 即对外访问路径 而过滤器 Filter 则可以对几乎所有的请求都能起作用 包括css js等资源文件 2 拦截器 Interceptor 是在Serv
  • C++类与对象-类成员函数的this指针

    C 类与对象 类成员函数的this指针 前言 相较于C语言结构体的对象实例化 我们在对结构体变量进行初始化的时候得将结构体变量的地址传入才可对结构体变量内容的初始化 而C 中也是如此 其编译器在代码编译阶段会将此过程填充 其中就涉及到thi
  • PowerMTA 4.5邮件群发服务器安装配置

    说明 已基本实现邮件的发送功能 spf dkim和DMARC验证通过 用户名密码认证失败待后续排查验证 环境 OS CentOS 7 6 PowerMTA 4 5r11 域名 mydomain com 服务器公网IP X X X X 客户端
  • sql如何取前几行_sql 取前几行记录语句

    SQLITE数据库 代码如下 select from table limit N db2数据库 代码如下 select from tab fetch first 10 rows only oracle数据库 代码如下 select from
  • 静态测试和动态测试

    1 静态测试 静态测试 static testing 就是不实际运行被测软件 而只是静态地检查程序代码 界面或文档中可能存在的错误的过程 包括对代码测试 界面测试和文档测试三个方面 对于代码测试 主要测试代码是否符合相应的标准和规范 对于界
  • Asahi Linux for M1 Apple Silicon 首次发布 Alpha 版

    Apple Silicon 的基于 Arch 的发行版只能用于更轻松地安装 OpenBSD Asahi Linux已经为Apple M1 M1 Pro或M1 Max设备上的用户发布了其第一个公共alpha版本 该发行版基于Arch Linu
  • 快手开店怎么引流?快手小店自上线以来就吸引众多的商家入驻

    快手开店怎么引流 快手小店自上线以来就吸引众多的商家入驻 快手小店自上线以来就吸引众多的商家入驻 当然也有不少快手主播粉丝多了也会去卖货多赚点钱 在快手上面开店重视的还是流量 如何才能给店铺带来更多的流量呢 商家需要怎么做 下面一起来看快手
  • 程序员模式

    在我的心中 程序员是一个做事有计划 有思想 具有高超技术 解决能力的艺术家 自己作为一个程序员 自愧不能达到如上的标准 看到过一个程序员曾经这样自嘲 一个只有半瓶子水晃晃荡荡的程序员 这些年来一直从事开发的工作 稀里糊涂跑过许多城市 流浪过
  • Oracle环境变量配置步骤

    Oracle11g环境变量配置 在做开发的过程中 几次重装系统安装配置过Oracle 本篇博客就对oracle配置环境变量的细节做一次记录和分享 三个模块 Oracle11g的安装 instantclient 11 2客户端的安装 PLSQ
  • waiting for ZeroTier system service,

    查了好几个回答 waiting for ZeroTier system service这个错误是之前装过但是卸载后未删除干净造成的 我是卸载后删除了下边四个路径下的Zero Tier文件夹 然后重装就好了 Program Files Pro
  • Elasticsearch7.17 四 : ElasticSearch集群架构

    文章目录 ElasticSearch集群架构 核心概念 节点 分片 Primary Shard Replica Shard 集群状态和分片设定 集群搭建 安装Cerebro客户端 安装kibana ES安全认证 集群内部安全通信 开启并配置
  • Wireshark应用

    1 过滤IP 如来源IP或者目标IP等于某个IP 例子 ip src eq 192 168 1 107 or ip dst eq 192 168 1 107 或者 ip addr eq 192 168 1 107 都能显示来源IP和目标IP
  • ecshop缓存清理-限制或禁用ECShop缓存

    ECSHOP的缓存存放在templates caches 文章夹下 时间长了这个文件夹就会非常庞大 拖慢网站速度 还有很多情况我们不需要他的缓存 本文介绍禁用ECSHOP缓存的方法 ECSHOP的缓存有两部分 一部分是SMARTY的页面缓存