Есть ли разница между кнопкой «Очистить кешированные данные» на странице производительности и drush cc?

Есть ли разница в том, что кеширование очищается между

drush cc all

и

Admin > Site Configuration > Performance > Clear cached data button

?

5 голосов | спросил Justin 20 TueEurope/Moscow2011-12-20T23:23:09+04:00Europe/Moscow12bEurope/MoscowTue, 20 Dec 2011 23:23:09 +0400 2011, 23:23:09

3 ответа


9

Краткий ответ: существенной разницы нет.

Drupal:

function system_clear_cache_submit($form, &$form_state) {
  drupal_flush_all_caches();
  drupal_set_message(t('Caches cleared.'));
}

Drush:

function drush_cache_clear_both() {
  drush_cache_clear_drush();
  if (drush_has_boostrapped(DRUSH_BOOTSTRAP_DRUPAL_FULL)) {
    drupal_flush_all_caches();
  }
}

Оба заканчивают вызов drupal_flush_all_caches , который очищает стандартные кэш-файлы Drupal, кэшированные файлы CSS /JS и все, что объявлено hook_flush_caches .

drush_cache_clear_both - это то, что вызывается «cc all». drush_cache_clear_drush очищает некоторые кэширование drush, которые не влияют на сайт Drupal.

ответил greg_1_anderson 20 TueEurope/Moscow2011-12-20T23:44:36+04:00Europe/Moscow12bEurope/MoscowTue, 20 Dec 2011 23:44:36 +0400 2011, 23:44:36
0

В исходном коде нет никакой разницы, но иногда возникает проблема с очисткой кеша, запустив drush cc, что только можно решить, очистив кеш из меню администратора или сбросив таблицы кэша.

Я думаю, что очистка кэшей с помощью меню администратора игнорирует эти ошибки, а drush не выполняет

Эти ошибки выглядят так. Вызывается функцией багги-взлома.

WD node: PDOException: SQLSTATE [23000]: нарушение ограничений целостности: 1062 Дублирующая запись 'node-23-23-default' для ключа 'PRIMARY': INSERT INTO {panelizer_entity} (entity_type, entity_id, revision_id, name, no_blocks , [ошибка] css_id, css, конвейер, контексты, отношения, сделал, view_mode, css_class, title_element, link_to_entity, дополнительно) VALUES (: db_insert_placeholder_0,: db_insert_placeholder_1,: db_insert_placeholder_2,: db_insert_placeholder_3,: db_insert_placeholder_4, : db_insert_placeholder_5,: db_insert_placeholder_6,: db_insert_placeholder_7,: db_insert_placeholder_8,: db_insert_placeholder_9,: db_insert_placeholder_10,: db_insert_placeholder_11,: db_insert_placeholder_12,: db_insert_placeholder_13, : db_insert_placeholder_14,: db_insert_placeholder_15); Массив

ответил macbert 4 J000000Friday14 2014, 14:42:03
0

Я вижу только два различия, но довольно значителен:

  • Когда я очищаю кеши, используя графический интерфейс, большинство из них восстанавливается во время моего собственного запроса, чтобы снова показать мне страницу Drupal, поэтому все происходит с моими учетными данными.
  • Когда я очищаю их с помощью drush, они восстанавливаются первым естественным запросом, обычно анонимным пользователем.

Эта разница важна только во время разработки, но может быть скрыта серьезные проблемы с правами на кэширование, если они забыты.

На производственных машинах или когда вы разрабатываете что-то, что не кэширует и не использует разрешения, это не проблема.


  • Очистка кэша с использованием графического интерфейса может иногда увеличиваться, если кеш большой, а база данных медленная (или просто при большой нагрузке)
  • Интерфейс командной строки. PHP обычно имеет намного более длительный тайм-аут, если он вообще существует, поэтому даже если очистка кэша медленная, скорее всего, он закончится без прерывания.

Это различие не должно иметь значения на здоровом сервере производства, но в идеальном мире нам никогда не понадобится вручную очищать кеши.


Обычно ответ greg_1_anderson отлично подходит - нет существенной разницы.

ответил Mołot 4 J000000Friday14 2014, 15:12:21

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132