我正在使用Magento ver1.6.1。我需要以编程方式清除Magento缓存。
Mage::app()->getCache()->clean()
我使用了上面的代码,但没有清除缓存。
答案 0 :(得分:14)
试试这个
Mage::app()->cleanCache();
答案 1 :(得分:14)
这就是你所追求的:
try {
$allTypes = Mage::app()->useCache();
foreach($allTypes as $type => $blah) {
Mage::app()->getCacheInstance()->cleanType($type);
}
} catch (Exception $e) {
// do something
error_log($e->getMessage());
}
以下是您自动执行此操作的方法:
http://mikebywaters.wordpress.com/2011/12/09/automatically-refresh-magento-cache/
答案 2 :(得分:3)
如果您使用的是Magento Enterprise(我使用的是1.13),上述答案中的上述代码似乎不足以刷新整页缓存。
我花了一些时间来弄清楚发生了什么,但是当使用上面使用上面代码时不会涉及的Web界面时,有一些方法会因事件而触发。至关重要的是cleanCache
Enterprise_PageCache_Model_Observer
方法。
要修复,我在Magento Guy或OğuzÇelikdemir的代码之后添加了以下代码。
Enterprise_PageCache_Model_Cache::getCacheInstance()
->clean(Enterprise_PageCache_Model_Processor::CACHE_TAG);
希望这能节省一些时间!
答案 3 :(得分:0)
要解决您的问题,您可以编写一个清除缓存和会话数据的bash脚本。
Magento Cache Syrup - 一个简单的bash脚本,以sys-admin方式清除magento缓存,会话,报告和临时数据,以确保您的magento网站表现更好。
此脚本清除Linux(ubuntu)服务器上Magento安装的缓存和会话数据,以确保它解决了缓存和会话数据导致的空白页Magento错误,并确保您的Magento网站运行得更快。 以root用户身份登录服务器并创建名为magento_cache_syrup.sh的文件,并输入以下代码。
#!/bin/sh
rm -rf /var/www/sl60/var/cache/*
rm -rf /var/www/sl60/var/session/*
rm -rf /var/www/sl60/var/report/*
确保更改上述代码中的路径并将其指向magento安装。对于绝对的初学者,只需将“/ var / www / sl60”替换为magento网站目录的路径。
一旦你纠正了路径,你就可以通过从终端调用它来运行上面的脚本。
这应该清除Magento安装中缓存,会话,tmp和报告目录中的所有数据。但问题并没有在这里结束。我们需要确保在到达空白页面之前每次都这样做。要解决此问题,我们将在每12小时运行bash脚本(magento-cache-syrup)的服务器上启用一个cron作业。
创建一个cronjob,每12小时运行一次bash脚本