簡體   English   中英

Magento從數據庫中禁用緩存

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM