2013-08-30 38 views

Trả lời

28

Cách dễ nhất để vô hiệu hóa bộ nhớ cache là bằng cách sử dụng truy vấn SQL:

UPDATE `core_cache_option` SET value=0; 

Và xóa thư mục bộ nhớ cache của bạn chỉ để đảm bảo:

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

Trong Magento Enterprise Edition bạn cũng phải rõ ràng thư mục full_page_cache (nhờ Bartosz Górski):

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

, chào mừng, +1. tốt để biết ý tưởng mới này. – liyakat

+0

+1 cho câu trả lời dễ nhất –

+1

Trong Magento Enterprise Edition, khi bạn muốn xóa các tệp bộ nhớ cache, bạn cũng phải xóa thư mục full_page_cache: rm -rf [website_root]/var/full_page_cache/* –

6

nếu dont bạn muốn đăng nhập vào trang web chỉ cần sử dụng bên dưới kịch bản để làm cho nó có thể

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

chỉ cần tạo kịch bản của riêng bạn và ý chí của bạn thực hiện với một phần bộ nhớ cache

hy vọng điều này sẽ chắc chắn giúp bạn .

+0

nó hoạt động hoàn hảo nhưng, thêm 1 giá trị mảng cho 8 => 'config_api2'to vô hiệu hóa tất cả các bộ nhớ cache ... @ Liyakat –

+0

Cảm ơn bạn @liyakat, tôi không cố gắng kịch bản của bạn, nhưng tôi thấy dễ nhất cách tắt bộ nhớ cache bằng cách chạy một truy vấn UPDATE. – Kostanos

1

Tôi đã tạo một Tập lệnh Shell để bật, tắt và/hoặc làm sạch bộ nhớ cache magento. Nó đọc các thông số cần thiết (dbhost, vv) từ etc/local.xml ...

Bạn có thể tải nó từ ý chính github của tôi: https://gist.github.com/seangreen/d9557726b479e066d71f

Các truy vấn mysql thực tế là như vậy:

Disable cache: mysql -h $DBHOST -u $DBUSER -p$DBPASS -e "UPDATE core_cache_option SET value=0;" $DBNAME

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

Và sau khi vô hiệu hóa hoặc enablin g rất tốt để làm sạch bộ nhớ cache: rm -rf var/cache/*

0

Nếu bạn vẫn sử dụng mặc định bộ nhớ cache hệ thống tập tin không hấp dẫn (AKA kiến ​​trúc facepalm Hider), bạn sẽ thấy một tập tin trong bộ nhớ cache của bạn được gọi là: pháp sư --- 687_CORE_CACHE_OPTIONS và một tập tin gọi là: pháp sư --- metadatas nội bộ --- 687_CORE_CACHE_OPTIONS. Đó là dưới mage - 4, nếu bạn dính vào các giá trị mặc định.

Vì vậy, không cần phải xóa toàn bộ trang web của bạn, nếu bạn chỉ cần xóa 2 trong số chúng. Tốt nhất để làm ofcourse chỉ là yêu cầu Magento để loại bỏ chúng, bởi vì bạn cũng có thể có XCache hoặc cho những người chuyên nghiệp một rackspace hoàn chỉnh đầy đủ của không có sql-db của.

Mage :: app() -> cleanCache (mảng ('MAGE'));

Với: Mage :: app() -> saveUseCache ($ cacheSettings); nó không cần thiết, nó sẽ tự động loại bỏ nó.

Vì vậy, 'rm -rf var/cache /' chỉ hoạt động trên hệ thống NOOB. Và có thể làm hỏng hệ thống Magento, nhưng cơ hội rất thấp. Bạn cần rất nhiều lưu lượng truy cập cho điều đó và bạn có thể có điều đó với hệ thống bộ đệm hệ thống tệp mặc định.

+0

Tôi nghĩ câu trả lời của bạn đã hết đề tài. Điều này là về việc vô hiệu hóa tất cả bộ nhớ cache và không phải về xả. Cảm ơn bạn anyway. – Kostanos

+0

Uhhmm, CÀI ĐẶT CACHE ĐƯỢC CACHE! (Có lẽ bạn nên mở tập tin 'CORE_CACHE_OPTIONS' một ngày) –

3

Đây là một đoạn mã đơn giản mà có thể được sử dụng trong một kịch bản thiết lập để kích hoạt hoặc vô hiệu hóa các loại bộ nhớ cache duy nhất:

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

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

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

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

Bạn có thể tra cứu các loại bộ nhớ cache trong core_cache_option bảng cơ sở dữ liệu:

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) 
Các vấn đề liên quan