[英]Magento disable cache from database
有一種方法可以從System->Cache Management
菜單中禁用緩存。
如果不使用數據庫SQL查詢進入網站,我怎么能這樣做呢?
禁用緩存的最簡單方法是使用SQL查詢:
UPDATE `core_cache_option` SET value=0;
並清除您的緩存文件夾只是為了確保:
rm -rf <YOUR SITE PATH HERE>/magento/var/cache/*
在Magento Enterprise Edition中,您還必須清除full_page_cache目錄(感謝BartoszGórski):
rm -rf [YOUR SITE PATH HERE]/magento/var/full_page_cache/*
如果您不想登錄網站,只需使用以下腳本即可
<?php
$mageFilename = 'app/Mage.php';
require_once $mageFilename;
umask(0);
Mage::app('admin');
Mage::app()->cleanAllSessions();
Mage::app()->getCacheInstance()->flush();
Mage::app()->cleanCache();
$types = Array(
0 => 'config',
1 => 'layout',
2 => 'block_html',
3 => 'translate',
4 => 'collections',
5 => 'eav',
6 => 'config_api',
7 => 'fullpage',
8=>'config_api2'
);
$allTypes = Mage::app()->useCache();
$updatedTypes = 0;
foreach ($types as $code) {
if (!empty($allTypes[$code])) {
$allTypes[$code] = 0;
$updatedTypes++;
}
$tags = Mage::app()->getCacheInstance()->cleanType($code);
}
if ($updatedTypes > 0) {
Mage::app()->saveUseCache($allTypes);
echo "Caches disabled Programmatically";
}
else {
echo "Caches disabled Already";
}
只需創建自己的腳本,即可完成緩存部分
希望這一定會對你有所幫助。
這是一個簡單的代碼片段,可以在設置腳本中用於啟用或禁用單個緩存類型:
$cacheOptions = Mage::app()->useCache();
// disable full page cache:
$cacheOptions['full_page'] = 0;
// enable block cache:
$cacheOptions['block_html'] = 1;
Mage::app()->saveUseCache($cacheOptions);
您可以在core_cache_option數據庫表中查找緩存類型:
mysql> select * from core_cache_option;
+-------------+-------+
| code | value |
+-------------+-------+
| block_html | 1 |
| collections | 1 |
| config | 1 |
| config_api | 1 |
| config_api2 | 1 |
| eav | 1 |
| full_page | 0 |
| layout | 1 |
| translate | 1 |
+-------------+-------+
9 rows in set (0.00 sec)
我創建了一個Shell腳本來啟用,禁用和/或清理magento緩存。 它從etc / local.xml中讀取必要的參數(DBHost等)...
你可以從我的github gist下載它: https : //gist.github.com/seangreen/d9557726b479e066d71f
實際的mysql查詢是這樣的:
禁用緩存: mysql -h $DBHOST -u $DBUSER -p$DBPASS -e "UPDATE core_cache_option SET value=0;" $DBNAME
mysql -h $DBHOST -u $DBUSER -p$DBPASS -e "UPDATE core_cache_option SET value=0;" $DBNAME
啟用緩存: mysql -h $DBHOST -u $DBUSER -p$DBPASS -e "UPDATE core_cache_option SET value=1;" $DBNAME
mysql -h $DBHOST -u $DBUSER -p$DBPASS -e "UPDATE core_cache_option SET value=1;" $DBNAME
禁用或啟用它后清理緩存很好: rm -rf var/cache/*
如果您仍然使用默認的糟糕文件系統緩存(AKA Architectural facepalm hider),您會注意到緩存中的文件名為:mage --- 687_CORE_CACHE_OPTIONS和一個名為:mage --- internal-metadatas --- 687_CORE_CACHE_OPTIONS的文件。 如果你堅持默認值,它在法師4下。
因此,如果您只需刪除其中的2個,則無需刷新整個站點。 最好的辦法就是讓Magento刪除它們,因為你也可以擁有XCache,或者為專業人士提供一個完整的機架空間,其中包含no-sql-db。
Mage :: app() - > cleanCache(array(' MAGE '));
使用:Mage :: app() - > saveUseCache($ cacheSettings); 它不需要它會自動刪除它。
因此, 'rm -rf var / cache /'僅適用於NOOB系統。 並且可以使Magento系統崩潰,但機會非常低。 你需要大量的流量,你可以使用默認的文件系統緩存系統。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.