2013-08-30 13 views

Odpowiedz

28

Najprostszym sposobem, aby wyłączyć pamięć podręczną jest za pomocą zapytania SQL:

UPDATE `core_cache_option` SET value=0; 

i jasny folderu cache dla pewności:

rm -rf <YOUR SITE PATH HERE>/magento/var/cache/* 

w Magento Enterprise Edition trzeba także wyczyścić katalog full_page_cache (dzięki Bartoszowi Górskiemu):

rm -rf [YOUR SITE PATH HERE]/magento/var/full_page_cache/* 
+0

, witamy, +1. dobrze znać ten nowy pomysł. – liyakat

+0

+1 dla łatwiejszej odpowiedzi –

+1

W Magento Enterprise Edition, gdy chcesz usunąć pliki pamięci podręcznej, musisz również wyczyścić katalog full_page_cache: rm -rf [katalog_główny_sieci]/var/full_page_cache/* –

6

jeśli nie chcesz, aby zalogować się do serwisu tylko skorzystać z poniższego skryptu, aby umożliwić

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

prostu stworzyć własny scenariusz i swoją wolę zrobić ze swojej strony cache

nadzieję, że to będzie na pewno pomóc .

+0

działa idealnie ale, dodać 1 wartość tablicową dla 8 => 'config_api2'to wyłączyć całą pamięć podręczną ... @ Liyakat –

+0

Dziękuję @liyakat, nie próbował skryptu, ale znalazłem najłatwiejszy sposób wyłączenia pamięci podręcznej przez uruchomienie jednego zapytania UPDATE. – Kostanos

1

Utworzono skrypt powłoki, aby włączyć, wyłączyć i/lub wyczyścić pamięć podręczną magento. brzmi ono niezbędne parametry (DBHost, itd.) z etc/local.xml ...

Można go pobrać z mojego github GIST: https://gist.github.com/seangreen/d9557726b479e066d71f

Rzeczywiste zapytania mysql są takie:

Wyłącz Cache: mysql -h $DBHOST -u $DBUSER -p$DBPASS -e "UPDATE core_cache_option SET value=0;" $DBNAME

Włącz cache: mysql -h $DBHOST -u $DBUSER -p$DBPASS -e "UPDATE core_cache_option SET value=1;" $DBNAME

A po wyłączeniu lub enablin g dobrze jest wyczyścić cache: rm -rf var/cache/*

0

Jeśli nadal korzystać z domyślnego systemu plików brzydko cache (AKA architektoniczne facepalm tłumik) można zauważyć w pamięci podręcznej plik o nazwie: Mag --- 687_CORE_CACHE_OPTIONS i plik o nazwie: mag --- wewnętrzne-metadata --- 687_CORE_CACHE_OPTIONS. Jest pod magiem - 4, jeśli trzymasz się wartości domyślnych.

Nie ma potrzeby opróżniania całej witryny, jeśli konieczne jest tylko usunięcie 2 z nich. Najlepiej zrobić to po prostu poprosić Magento, aby je usunął, ponieważ możesz mieć XCache lub dla profesjonalistów kompletny obszar przestrzeni dyskowej, który nie zawiera sql-db.

Mag :: app() -> cleanCache (tablica ('MAGE'));

Za pomocą: Mage :: app() -> saveUseCache ($ cacheSettings); nie jest potrzebny, usunie go automatycznie.

Tak więc, tylko "rm -rf var/cache /" będzie działać w systemie NOOB. I może zawiesić system Magento, ale szanse są bardzo niskie. Potrzebny jest do tego duży ruch i możesz to zrobić przy domyślnym systemie buforowania systemu plików.

+0

Myślę, że twoja odpowiedź jest poza temat. Chodzi o wyłączenie całej pamięci podręcznej, a nie o spłukiwanie. Mimo wszystko dziekuję. – Kostanos

+0

Uhhmm, USTAWIENIA KĄPIELI SĄ ZATRZYMANE! (Może pewnego dnia otworzysz plik 'CORE_CACHE_OPTIONS') –

3

Oto prosty fragment kodu, które mogą być wykorzystane w skrypcie konfiguracji, aby włączyć lub wyłączyć pojedyncze typy cache:

$cacheOptions = Mage::app()->useCache(); 

// disable full page cache: 
$cacheOptions['full_page'] = 0; 

// enable block cache: 
$cacheOptions['block_html'] = 1; 

Mage::app()->saveUseCache($cacheOptions); 

Można patrzeć rodzaje pamięci podręcznej w tabeli bazy 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) 
Powiązane problemy