web-dev-qa-db-ja.com

パフォーマンスページの[キャッシュデータをクリア]ボタンとdrush cc allに違いはありますか?

クリアされるキャッシュに違いはありますか

drush cc all

そして

Admin > Site Configuration > Performance > Clear cached data button

5
Justin

短い答え:大きな違いはありません。

Drupal:

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

ドラッシュ:

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は、Drupalサイトに影響を与えない一部のDrushキャッシュをクリアします。

9
greg_1_anderson

ソースコードに違いはありませんが、drush cc allを実行してキャッシュをクリアすると問題が発生する場合があります。これは、管理メニューからキャッシュをクリアするか、キャッシュテーブルをダンプすることによってのみ解決できます。

管理メニューを使用してキャッシュをフラッシュしても、drushはそうではないのに、これらのエラーを無視すると思います

これらのエラーは次のようになります。バグのあるハック機能が原因で発生します。

WDノード:PDOException:SQLSTATE [23000]:整合性制約違反:1062重複するエントリ 'node-23-23-default' for key 'PRIMARY':INSERT INTO {panelizer_entity}(entity_type、entity_id、revision_id、name、no_blocks、[error ] css_id、css、パイプライン、コンテキスト、リレーションシップ、did、view_mode、css_class、title_element、link_to_entity、extra)VALUES(:db_insert_placeholder_0、:db_insert_placeholder_1、:db_insert_placeholder_2、:db_insert_placeholder_3、:db_insert_placeholder__insert、_place、_insert、_place、_insert、_placeinsert_placeinsert_place、_insert、place_insert、place_insert 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);アレイ

0
macbert

違いは2つだけですが、かなり重要です。

  • GUIを使用してキャッシュをクリアすると、自分のリクエスト中にそれらのほとんどが再生成され、Drupalページが再度表示されるので、すべてが資格情報で発生します。
  • Drushを使用してそれらをクリアすると、通常は匿名ユーザーによる最初の自然な要求によって再生成されます。

この違いは開発中にのみ重要ですが、忘れると重大な権限/キャッシュの問題を隠す可能性があります。

本番マシン、またはキャッシュを作成せず、権限を使用しないものを開発している場合、それは問題ではありません。


  • キャッシュが大きく、データベースが遅い場合(または負荷が大きい場合)、GUIを使用したキャッシュのクリアが時々遅れる
  • コマンドラインインターフェースPHP通常、タイムアウトが設定されている場合でも、タイムアウトが設定されているため、キャッシュのクリアが遅い場合でも、中断されることなく終了します。

この違いは、正常な運用サーバーでは重要ではありませんが、完全な世界では、手動でキャッシュをクリアする必要はありません。


通常、 answer by greg_1_anderson は完全に適切です-大きな違いはありません。

0
Mołot