本文主要介绍了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缓存”这篇文章对大家有帮助,同时也希望大家多多支持亿速云,关注亿速云行业资讯频道,更多相关知识等着你来学习!