Magento从数据库中禁用缓存

时间:2013-08-30 22:51:31

标签: magento

有一种方法可以从System->Cache Management菜单中禁用缓存。

如果不使用数据库SQL查询进入网站,我怎么能这样做呢?

4 个答案:

答案 0 :(得分:28)

禁用缓存的最简单方法是使用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/*

答案 1 :(得分:6)

如果您不想登录网站,只需使用以下脚本即可实现

<?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";
}

只需创建自己的脚本,您就可以使用缓存部分

希望这对您有所帮助。

答案 2 :(得分:1)

我创建了一个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=1;" $DBNAME

禁用或启用后,清理缓存非常有用: rm -rf var/cache/*

答案 3 :(得分:0)

如果您仍然使用默认的糟糕文件系统缓存(A.K.A Architectural facepalm hider),您会注意到缓存中的文件名为:mage --- 687_CORE_CACHE_OPTIONS和一个名为:mage --- internal-metadatas --- 687_CORE_CACHE_OPTIONS的文件。如果你坚持默认值,那么它在法师4下面。

因此,如果您只需要删除其中的2个,则无需刷新整个站点。最好的办法是让Magento删除它们,因为你也可以拥有XCache,或者为专业人士提供一个完整的机架空间,其中包含no-sql-db&#39; s。

法师::应用程序() - &GT; cleanCache(阵列(&#39;的 MAGE &#39;));

使用:Mage :: app() - &gt; saveUseCache($ cacheSettings);它不需要它会自动删除它。

所以,&#39; rm -rf var / cache /&#39;只能在NOOB系统上运行。并且可能会导致Magento系统崩溃,但机率非常低。你需要大量的流量,你可以使用默认的文件系统缓存系统。