ecshop怎么清除mysql缓存

2022年 10月 18日 发表评论
腾讯云正在大促:点击直达 阿里云超级红包:点击领取
免费/便宜/高性价比服务器汇总入口(已更新):点击这里了解

本文主要介绍了ecshop如何清除mysql缓存,具有一定的参考价值。有兴趣的朋友可以参考一下。希望大家看完这篇文章,收获多多。让本站带你去了解一下。

ECSHOP的缓存存储在模板/缓存/文章文件夹中。这个文件夹时间长了会很大,会让网站变慢。很多情况下我们不需要他的缓存。介绍了禁用ECSHOP缓存的方法。

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

、关闭SMARTY的缓存

打开includes/cls_template.php,找到以下段落

if(file _ put _ contents($ this-cache _ dir。'/'.$cachename。php ','?phpexit'。$数据。$out)===false)

{

trigger_error('can'twrite: '。$this-cache_dir。'/'.$cachename。PHP ');

}-注释掉这段代码

、关闭SQL查询结果缓存

开放包括/cls _ mysql.php。

找到

var $ max _ cache _ time=3600//以秒为单位的最大缓存时间更改为

var $ max _ cache _ time=0;//最大缓存时间,如何以秒为单位限制或禁用ECShop缓存?只要ftp登录到主机空间服务器,清除“模板/缓存”文件夹中的缓存文件是合理的,但更安全的方法是进入ecshop在线商店的背景并单击右上角的“清除缓存”按钮。或者完全禁用ecshop的缓存功能。

一、禁用ecshop部分数据表缓存

ecshop中的缓存文件夹缓存文件包括sql查询结果缓存和SMARTY模板页面缓存。如果有更多的用户访问该网站,这些临时缓存的数据将保存在ECshop的“模板/缓存”文件夹中。数据缓存对于提高网店的速度有一定的作用,但是缓存的文件太多了。有人说只能对两个表禁用缓存,即trust _ activity和goods _ activity。

打开include/init.php并查找

PHP代码

$ db-set _ disable _ cache _ tables(array($ ECS-table(' sessions '),$ecs-table('sessions_data '),$ ECS-table(' cart '));修改为

PHP代码

$ db-set _ disable _ cache _ tables(array($ ECS-table(' sessions '),$ecs-table('sessions_data '),$ecs-table('cart '),$ ECS-table(' positive _ activity '),$ ECS-table(' goods _ activity ')));二、完全禁用ecshop缓存

懒人登录ecshop在线商店定期清理后台缓存文件很麻烦。为什么不完全禁用ecshop缓存?根据关于禁用bug的echsop缓存的文章,bug的具体代码大概是2.6.0。2.7的ecshop禁用缓存修改方法类似:

1.用editplus打开include/cls_template.php并注释掉以下代码:

PHP代码

2.用editplus打开include/cls_mysql.php,查找max_cache_time=300,并将300更改为0

三、templates/compiled下的文件是否可以清空?

模板/编译下的文件是模板的编译文件,可以清空。当用户浏览在线商店时,它将被重新生成。在templates文件夹下,缓存中有太多的缓存文件,因此您可以定期清除或完全禁用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里面了

//缓存目录设置  define('ECS_ROOT',substr(dirname(__FILE__),0,-8));//前后台数字当然不一样了:)  //文章缓存  $cache_dir_article=ECS_ROOT.'./templates_caches/article';  $cache_dir_article_cat=ECS_ROOT.'./templates_caches/article_cat';  //商品缓存  $cache_dir_goods=ECS_ROOT.'./templates_caches/goods';  $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:删除商品缓存,默认缓存时间

还有广告管理等等等等等等等等地方要改!

前台用户发表评论后自动删除本商品缓存等等..........

functionclear_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)){  returncall_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');  returnsmarty_core_rm_auto($_params,$this);  }  }

感谢你能够认真阅读完这篇文章,希望小编分享的“ecshop怎么清除mysql缓存”这篇文章对大家有帮助,同时也希望大家多多支持亿速云,关注亿速云行业资讯频道,更多相关知识等着你来学习!

小咸鱼

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: