ecshop怎么清除mysql緩存

這篇文章主要介紹了ecshop怎么清除MySQL緩存,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

創(chuàng)新互聯(lián)專注于達(dá)拉特網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠(chéng)為您提供達(dá)拉特營(yíng)銷型網(wǎng)站建設(shè),達(dá)拉特網(wǎng)站制作、達(dá)拉特網(wǎng)頁(yè)設(shè)計(jì)、達(dá)拉特網(wǎng)站官網(wǎng)定制、成都微信小程序服務(wù),打造達(dá)拉特網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供達(dá)拉特網(wǎng)站排名全網(wǎng)營(yíng)銷落地服務(wù)。

ECSHOP的緩存存放在templates/caches/文章夾下,時(shí)間長(zhǎng)了這個(gè)文件夾就會(huì)非常龐大,拖慢網(wǎng)站速度。還有很多情況我們不需要他的緩存。本文介紹禁用ECSHOP緩存的方法。

ECSHOP的緩存有兩部分,一部分是SMARTY的頁(yè)面緩存;另一部分是SQL查詢結(jié)果的緩存。這兩部分都是保存在templates/caches/文件夾下。只要我們分別關(guān)閉這兩個(gè)功能,就可以完全禁用ECSHOP的緩存。當(dāng)然你也可以根據(jù)自己的需要關(guān)閉其中某一個(gè)。

1、關(guān)閉SMARTY的緩存

打開(kāi)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’);
}

--將此代碼注釋掉

2、關(guān)閉SQL查詢結(jié)果緩存

打開(kāi)includes/cls_mysql.php

找到

var $max_cache_time=3600;//最大的緩存時(shí)間,以秒為單位

改為

var $max_cache_time=0;//最大的緩存時(shí)間,以秒為單位

如何限制或禁用ECShop緩存呢?按道理只要ftp登錄到主機(jī)空間服務(wù)器,清除“templates/caches”文件夾下的緩存文件,但比較安全穩(wěn)妥的辦法是進(jìn)入ecshop網(wǎng)店后臺(tái)點(diǎn)擊右上角“清除緩存”按鈕。還是完全禁用ecshop的緩存功能。

一、禁用ecshop部分?jǐn)?shù)據(jù)表緩存

ecshop里caches文件夾緩存文件包括sql查詢結(jié)果緩存和SMARTY模板頁(yè)面緩存。如果訪問(wèn)網(wǎng)站的用戶一多,這些臨時(shí)的緩存數(shù)據(jù)都被保持在ECshop的“templates/caches”文件夾下。數(shù)據(jù)緩存對(duì)提高網(wǎng)店速度有一定作用,但緩存文件一多也就過(guò)猶不及。有人說(shuō)只對(duì)favourable_activity,goods_activity這2個(gè)表禁用緩存即可。

打開(kāi)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(’favourable_activity’), $ecs->table(’goods_activity’)));

二、完全禁用ecshop緩存

定期要登錄ecshop網(wǎng)店后臺(tái)清除緩存文件,對(duì)于懶人來(lái)說(shuō),這也挺嫌麻煩的。那干脆完全禁用ecshop緩存吧。參考小蟲(chóng)的禁用echsop緩存文章,小蟲(chóng)的具體代碼是2.6.0左右的版本。2.7的ecshop禁用緩存修改方法類似:

1. 用editplus打開(kāi)include/cls_template.php,把下面代碼注釋掉:

PHP代碼

2.用editplus打開(kāi)include/cls_mysql.php,找到 max_cache_time = 300,把300改為0即可

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

templates/compiled下的文件是模板編譯后文件,可以清空。當(dāng)用戶瀏覽網(wǎng)店后又會(huì)重新生成。templates文件夾下的主要是caches里緩存文件太多,你可以定期清空或完全禁用ecshop緩存。

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

關(guān)于清除緩存的建議!!

發(fā)現(xiàn)現(xiàn)在的清除緩存做的比較粗!和之前沒(méi)大變化啊!和2.0.5一樣.

只要后臺(tái)隨便一個(gè)修改的操作,整個(gè)緩存就都沒(méi)了!用的都是$smarty->clear_all_cache();

缺點(diǎn):如果我有10萬(wàn)商品,而且都被瀏覽過(guò),我后臺(tái)一個(gè)操作就要清楚15萬(wàn)多緩存文件:)似乎極限了點(diǎn)

只是舉例!!,希望ECSHOP更加完美而已!

smarty里面不是有這個(gè)函數(shù)么?

clear_cache(),我小修改了下,增加了可以指定刪除某個(gè)目錄下的緩存,用處是:可方便的刪除商品的分類緩存!

2.0.5上我是這么改的,另外在根目錄建立一個(gè)緩存目錄templates_caches,里面建立article,article_cat,goods,goods_cat,4個(gè)文件夾分別放文章內(nèi)容,文章列表,商品內(nèi)容,商品列表的緩存

例子:對(duì)商品,文章部分的修改

前臺(tái)init.php和后臺(tái)init.php加入如下代碼,我為了方便直接加在config.php里面了

//緩存目錄設(shè)置
define('ECS_ROOT', substr(dirname(__FILE__), 0, -8));//前后臺(tái)數(shù)字當(dāng)然不一樣了:)
//文章緩存
$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';

前臺(tái)商品內(nèi)容和分類緩存時(shí)間單獨(dú)設(shè)置長(zhǎng)一些,如內(nèi)容一個(gè)月,分類1天

修改后臺(tái),商品單獨(dú)修改的地方只刪除這個(gè)商品內(nèi)容的緩存

只要有修改操作就刪除商品分類緩存和首頁(yè)緩存!加入如下

$smarty->clear_cache(null, null, null, null, $cache_dir_goods_cat);//zouql:刪除商品目錄緩存,默認(rèn)緩存時(shí)間
$smarty->clear_cache('goods.html', $goods_id, null, null, $cache_dir_goods);//zouql:刪除商品緩存,默認(rèn)緩存時(shí)間

還有廣告管理等等等等等等等等地方要改!

前臺(tái)用戶發(fā)表評(píng)論后自動(dòng)刪除本商品緩存等等..........

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);
}
}

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“ecshop怎么清除mysql緩存”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來(lái)學(xué)習(xí)!

網(wǎng)站標(biāo)題:ecshop怎么清除mysql緩存
文章網(wǎng)址:http://muchs.cn/article18/ghgjgp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計(jì)公司、關(guān)鍵詞優(yōu)化、網(wǎng)站收錄、電子商務(wù)、建站公司、

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

網(wǎng)站托管運(yùn)營(yíng)