有一种方法可以从System->Cache Management
菜单中禁用缓存。
如何使用数据库 SQL 查询在不进入站点的情况下执行相同操作?
禁用缓存的最简单方法是使用 SQL 查询:
UPDATE `core_cache_option` SET value=0;
并清除您的缓存文件夹以确保:
rm -rf <YOUR SITE PATH HERE>/magento/var/cache/*
在 Magento 企业版中,您还必须清除 full_page_cache 目录(感谢 Bartosz Gó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=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 系统崩溃,但几率非常低。为此,您需要大量流量,并且可以使用默认的文件系统缓存系统来获得流量。