タグ付けされた質問 「caching」

Drupalで処理量を減らすことによって応答時間を改善するには、通常、キャッシュを使用する必要があります。

5
特定のビューのキャッシュを無効にするにはどうすればよいですか?
特定のビューのキャッシュのクリアを開始するために特定のビューを無効にする必要がある状況に直面しています。 views_invalidate_cache()は、サイト上のすべてのビューについて、キャッシュされたすべてのビューデータをクリアします。 モジュールコード内から特定のビューのキャッシュ無効化をトリガーするにはどうすればよいですか?

1
キャッシュ:「drush cr」と管理ツールバー「すべてのキャッシュをフラッシュ」
すべてのキャッシュをフラッシュしない場合、drush crは何をしますか?特にブロックキャッシュに関しては? 私はコードに何も問題はないが、すべてのキャッシュをフラッシュするだけでは不十分であり、drush crがうまく機能することを最終的に理解するために、カスタムブロックtwigテンプレートを設定しようとして怒りました。 https://www.drupal.org/node/2640110 編集:私のローカル開発設定のバイアスはありますか? $settings['cache']['bins']['render'] = 'cache.backend.null'; $settings['cache']['bins']['dynamic_page_cache'] = 'cache.backend.null';
7 theming  8  blocks  caching 

1
Memcacheとフォームキャッシュ-フォームキャッシュ用のデータベースを指定する必要がありますか?
Drupal 7では、Memcache APIと統合の一般的な設定は、これをsettings.phpに追加することでした。 $conf['cache_backends'][] = 'sites/all/modules/memcache/memcache.inc'; $conf['lock_inc'] = 'sites/all/modules/memcache/memcache-lock.inc'; $conf['memcache_stampede_protection'] = TRUE; $conf['cache_default_class'] = 'MemCacheDrupal'; // The 'cache_form' bin must be assigned to non-volatile storage. $conf['cache_class_cache_form'] = 'DrupalDatabaseCache'; // Don't bootstrap the database when serving pages from the cache. $conf['page_cache_without_database'] = TRUE; $conf['page_cache_invoke_hooks'] = FALSE; 引き続きデータベースを使用するように指示されているフォームキャッシュの重要性に注意してください。 Drupal 8の場合、READMEには次の追加のみが記載されています。 $settings['cache']['default'] = …
7 8  forms  caching 

3
埋め込みビューのキャッシュを無効にするにはどうすればよいですか?
繰り返しの段落フィールドを含むノードタイプ「記事」があります。段落タイプの1つで、エンティティ参照フィールドを使用してビューを埋め込むことができます。ビュー参照を含むArticleノードをレンダリングするときに、選択したビューを次のhook_preprocess_paragraphように埋め込みます。 $view_id = $paragraph->field_view->target_id; $view = \Drupal\views\Views::getView($view_id); $view->setDisplay('embed_1'); $vars['content'] = $view->preview(); これは、キャッシュを有効にする場合を除いて、正常に機能しています。たとえば、私のビューの1つは、「イベント」タイプのノードをリストします。新しいイベントを追加すると、キャッシュを消去するまでリストに表示されません。「イベント」を挿入/更新/削除するときにキャッシュを強制的に消去できますが、Drupal 8のキャッシュタグシステムを使用して、イベントリストを含むキャッシュされたコンテンツのみを無効にしたいと思います。問題は、それを機能させることができないことです。 これまでのところ私は、ノード、ビュー、および段落にキャッシュタグを追加しようとしているhook_preprocess_paragraphとhook_preprocess_node、このように: $vars['paragraph']->addCacheTags(['node_list']); ... $view->storage->addCacheTags(['node_list']); ... $vars['node']->addCacheTags(['node_list']); このページに よればnode_list、ノードが更新されるたびにキャッシュを無効にするノードリストに使用できます。しかし、効果はありません。多分、前処理フックはキャッシュタグを追加するのが遅いのでしょうか? 何が欠けていますか? 編集: さらにテストを行ったところ、イベントを編集すると変更がリストに表示され、イベントを削除するとリストから消えることがわかりました。この問題は、新しいイベントを追加するときにのみ発生します。
7 views  8  caching 

4
匿名ユーザーのキャッシュ制御
動的コンテンツをレンダリングするカスタムブロックをいくつか作成しました。残念ながら、キャッシュのデフォルトでは、このブロックの最初のレンダリングがキャッシュされます(匿名ユーザーの場合は更新されません)。キャッシュ制御は、認証されたユーザーに対してのみ機能するようです。私たちは明白なものを見逃していますか?ブロック(またはページ)ベースで匿名キャッシュを制御することは可能ですか?
7 8  caching 

2
開発のためにTwigキャッシングを本当に無効にするにはどうすればよいですか?[閉まっている]
閉まっている。この質問はトピックから外れています。現在、回答を受け付けていません。 この質問を改善してみませんか? Drupal Answersのトピックとなるように質問を更新してください。 4年前休業。 Twigキャッシングを無効にするために、次の手順に従いました。 sites / example.settings.local.phpをコピーして名前を変更し、sites / default / settings.local.phpに変更します。 $ cp sites/example.settings.local.php sites/default/settings.local.php sites / defaultでsettings.phpファイルを開き、次の行のコメントを外します。 if (file_exists(__DIR__ . '/settings.local.php')) { include __DIR__ . '/settings.local.php'; } これには、Drupalの設定ファイルの一部としてローカル設定ファイルが含まれます。 settings.local.phpを開き、TRUEに変更します $config['system.performance']['css']['preprocess'] = FALSE; $config['system.performance']['js']['preprocess'] = FALSE; これらの行のsettings.local.phpのコメントを外して、レンダリングキャッシュを無効にし、動的ページキャッシュを無効にします。 $settings['cache']['bins']['render'] = 'cache.backend.null'; $settings['cache']['bins']['dynamic_page_cache'] = 'cache.backend.null'; テストモジュールとテーマをインストールしない場合は、以下をFALSEに設定します $settings['extension_discovery_scan_tests'] = TRUE; sitesフォルダーのdevelopment.services.ymlを開き、次のブロックを追加します(twigキャッシュを無効にするため)。 …
7 8  caching  theming 

1
Drupalのパフォーマンスはどうなりましたか?
安い共有ホストにDrupal 7を再インストールしました。インストールはうまくいきました... FTP経由で1098ファイルをコピーし、2分以内にインストールしました。標準インストール(すべてのモジュールがコアにある)には、約5〜10秒かかりました。インストール後、サイトは正常に動作します。安価なホスティングなので、少し遅い場合もありますが、許容範囲です。 昨日、私は新しいDrupal 8をインストールしました(これが、比較のために今日Drupal 7をインストールした理由です)。最初に気づいたのは、ファイル数12327です。現在、Viewsなどのモジュールがコアに含まれていることは理解していますが、ファイル数が10倍を超えて増加するのは少し奇妙に思えます。これには別の理由がありますか? ? すべてのファイルをコピーしたら、Drupal 8をインストールしようとしました。インストールページの読み込みには最大20秒かかります。インストールを開始しようとすると、PHPでOPcacheが有効になっていないという通知が表示されます。これが遅い理由ですか?代替品はありますか? インストールを続行すると、ランダムなエラーが発生します。Googleでそれらを検索しても、詳細な情報は得られません。数か月前に修正されたバグについての何か、それは私が見つけることができたすべてです。インストールが成功するまでに3回再起動する必要がありました。 最大の問題はパフォーマンスです。デフォルトのインストール中にこれらすべてのモジュールをインストールするのに、Drupal 7では約5〜10秒かかりました。Drupal8では約20〜30分かかりました。さて、いくつかのモジュールが追加されましたが、これは非常に奇妙に見えます。3回リトライしなければならなかったので、Drupal 8をインストールするだけで約2時間かかりました。インストール後は遅くて使えないので、インストール全体を削除する必要がありました。 誰かがこの問題についてもっと知っているかどうか疑問に思っています。Drupal 8が適切に実行するには、Drupal 7の20倍以上のリソースが必要ですか?それとも、OPcacheが不足しているためですか?この問題が発生するのは私だけですか? 新しい機能を試してみたいので、アドバイスがあれば歓迎します。Drupal 7は私の安いホスティングで完璧に動作しますが、Drupal 8は本当の悪夢です。 この問題を見つけて解決するために、他にどのような技術情報が関連しているのかわかりません。

1
ビューのキャッシュ戦略-クエリキャッシュとレンダリングされた出力キャッシュの関係
まず、私はデューデリジェンスを確保し、以前に出てきた質問を重複させないようにしています。stackexchangeやその他のさまざまな場所で、ビューのキャッシュや、さまざまなタイプのビューキャッシュの詳細(例:hereとhere)について説明している投稿が数多くあります。ただし、ビューキャッシュのさまざまなレイヤー間の関係と、それらがケース固有のキャッシュの決定にどのように影響するかを十分に説明している詳細はまだわかりません。簡単にするために、私はこの質問の範囲を、コントリビュートスペースで提供される他のレイヤーとは関係なく、すぐに使える7.x-3.xのキャッシュオプションに焦点を合わせています。 ビューは、ディスプレイごとに「クエリ結果」キャッシュと「レンダリングされた出力」キャッシュの2つの時間ベースのキャッシュレイヤーを公開します。各キャッシュに含まれる生データの詳細は明確ですが、それらの相互作用方法は明確ではありません。レンダリングされたキャッシュへのヒットがクエリキャッシュを完全にバイパスするのか、2つのレイヤーが別々に動作するのか、私は特に疑問に思っています。私は(のような旧主張するいくつかの参照見てきたこの1を)、および(のように後者を主張しているいくつかのこの1)。 理論1-個別のキャッシュレイヤー 最初は、各レイヤーが別々に「連続して」呼び出され、レンダリングされた出力キャッシュがそのCID内の実際のクエリ結果をハッシュするという印象(および期待)を抱いていました。このようにして、新しいコンテンツがビューに即座に反映されるようにしながら、最も負荷の高いクエリ後のロード/ビルド作業をキャッシュするエレガントな方法があります( "クエリ結果"キャッシュがオフで、 "レンダリングされた出力"キャッシュがオン)。いくつかの簡単なテストは、レンダリングされた出力キャッシュが現在のクエリ結果を認識していない可能性があるため、これは不可能かもしれないことを明らかにしています。 理論2-レンダリングされた出力キャッシュがクエリ結果キャッシュを「包括」する もう1つの可能性は、レンダリングされた結果キャッシュが、クエリ自体(結果ではない)のハッシュによってキー設定されることです。この場合、ヒットすると、クエリキャッシュやDBを参照する必要なく、レンダリングされた出力を直接返すことができます。これが事実である場合、「レンダリングされた結果」キャッシュよりも短い時間間隔で「クエリ結果」キャッシュを設定することはあまり意味がないと思います。もちろん、利点は、DBへの直接クエリを回避しながら、レンダリングされた出力をより頻繁に更新できることです(多くの動的テーマロジックまたは頻繁なエンティティ更新がある場合)。ただし、最も複雑なビュークエリを除くすべての場合、この種類の分離はそれほど有利に思えません。 理論2を指す「ブラックボックス」テストをいくつか実行しましたが、他にいくつかの設定が機能しているかどうか、またはビューのバージョンによって答えが異なるかどうかはわかりません。私もコードを少し調べましたが、ほとんどのビューのプラグインメソッドがドキュメント化されておらず、たまに追跡するのが難しいことがイライラしています。とにかく、これに対する答えは、他の人の参考資料として役立つと思います。

2
APCとMemcachedの違い、および両方をキャッシュビンに使用する方法
MemcachedとAPCの違いと、人々がどちらか一方または両方の使用について語る理由を理解しようとしています。完全に異なる役割を持っていると思ったので、なぜ両方を使用しないのか理解できません。これが私の理解です: APC これにより、PHPコードのチャンクがキャッシュされ、RAMに格納されます。次に、同じコードを再度実行する必要がある場合、そのコードはすでにキャッシュされており、メモリから高速で実行されます。 PHP-FPMを実行する私の特定のケースでは、これによりその負荷が軽減されます。 Memcached (2つのphpモジュールの違いは無視し、この目的のために同じものとして扱います) これはDBオブジェクトをキャッシュし、RAMに格納します。次に、drupalが同じデータベースオブジェクトを呼び出す必要がある場合、すべての情報はそこにあり、データベースに移動する必要はありません。 MySQLを実行する私の特定のケースでは、これによりその負荷が軽減されます。 Drupalキャッシュビン Drupal Stack Exchangeには、APCとmemcachedについて言及しているキャッシングとキャッシュビンに関する質問がたくさんあります。 でキャッシュビンのための最高の場所である場合は、Memcacheのが原因APCと安定性の問題をお勧めします。 であるがAPCは良いが実行されているとき、Memcachedのモジュールを使用して、任意のゲイン...、それのは、選択は個人の好みに降りてくると述べました。 ではAPC、ニスやMemcacheのではDrupal 7を使用して...それはそれらの両方を組み合わせることについて語っています。 このため、この分野で非常に有益な質問のいくつかは、Memcachedを使用することをお勧めします。他のいくつかの質問では、両方を導入することに大きな違いはないと述べています。 しかし、私はこれがどのように機能するか理解していません。完全に異なるものをキャッシュしていないのですか? よく使われるビューがあるとします。memcachedはビューに表示されるDBオブジェクトをキャッシュしていませんか?APCはそれらを呼び出すモジュールコードをキャッシュしていますか? 各Drupalキャッシュビンに使用できるキャッシュは1つだけなので、DBオブジェクトまたはPHPコードをキャッシュすることを選択できます。実際には、ほとんどのDrupalキャッシュビンは、2つのキャッシュのパフォーマンスの差がほとんどないか、大きすぎてすべてをキャッシュできません。 PHPでDBオブジェクトをキャッシュすることが唯一の合理的なオプションですか? (したがって、ほとんどの人がmemcacheをデフォルトのキャッシュビンオプションとして提案する理由、つまり$conf['cache_default_class'] = 'MemCacheDrupal';)
7 7  caching 

1
約50のフィールドを持つノード追加フォームを高速化する方法は?
約50のフィールドを持つノード追加フォームがあり、ほとんどが1つのフィールドコレクション(別の5つのフィールドを持つ)を持つテキストと、いくつかのエンティティと用語参照があります。 ページの読み込みに約30秒かかり、使用できなくなります。 いくつかの遅いクエリがあります(99.28-DrupalDatabaseCache :: getMultiple、34.21-views_plugin_query_default :: execute、20.51-DrupalDefaultEntityController :: load、18.46-DrupalDatabaseCache :: getMultiple、17.46-DrupalDatabaseCache :: getMultiple .. Cache :: getMultipleクエリには1087のプレースホルダーがあり、EntityController :: loadには1084のプレースホルダーがあります。 完了までにさらに30秒かかるフィールドコレクションの[別のアイテムを追加]をクリックした場合。 ページの読み込み時間を短縮するにはどうすればよいですか? 編集:私はAPCをインストールしましたが、すべてのキャッシュクエリが削除されましたが、問題は解決しませんでした-まだ約30秒の読み込み時間です。遅いロード時間はキャッシングに関連しているとは思いません。約280MBのメモリロードを使用してページを構築しています。 編集:フィールドコレクションを削除し、memcacheとentitycacheをインストールすると、読み込み時間が20秒短縮されました。ただし、最初にページをロードするのに10秒かかり、ajaxリクエストごとにさらに10秒は許容されません。多数のフィールドでWebフォームはどのように機能しますか?多分それはより良いオプションでしょうか?

1
パネルは用語をキャッシュする-引数によるキャッシュとコンテキストによるキャッシュの違いは何ですか?
Panelsキャッシングの設定方法を学習しようとしています。私はDrupalキャッシングのマスターに関するビデオを見て、アールマイルズのパネルとビューに関する本、Drupalのビルディングブロックを持っていますが、残念ながら、特にキャッシングに関する章はありません。 そのため、ユーザープロファイルを上書きするパネルがあり、このパネルには、ビューコンテンツペインがいくつかあるバリアントがあります。これらのコンテンツペインは、表示されるユーザーごとに異なるはずなので、表示されるユーザープロファイルごとにキャッシュしたいと思います。 これらの各コンテンツペインには、[ コンテンツ:作成者UID]に対するコンテキストフィルターがあります。 値は、ビューの引数入力オプションによってパネルに提供されます。このコンテンツの場合、コンテンツ:作成者uidソースがFromコンテキストに設定され、必須コンテキストがUser IDに設定されます。 パネルの[ シンプルキャッシュ構成]画面の[ 粒度]で、[ 引数]または[ コンテキスト]を選択できます。ヘルプテキストは次のとおりです。 「引数」を選択すると、このコンテンツは個々の引数ごとにディスプレイ全体にキャッシュされます。「コンテキスト」が選択されている場合、このコンテンツはペインまたはディスプレイの一意のコンテキストごとにキャッシュされます。「どちらでもない」場合、このペインのキャッシュは1つだけです。 しかし、ビューでは、オプションは引数入力と呼ばれ、選択した値はコンテキストからのものでした。それで私は議論または文脈を扱っていますか? 可能であれば、この場合の議論と文脈の違いを説明する一般的な回答と、私の質問に対する具体的な回答の両方が素晴らしいでしょう。
7 panels  caching 

2
匿名ユーザーの単一フィールドのキャッシュを無効にする方法はありますか?
私は興味深いが、おそらく一般的な問題に遭遇しました。キャッシュがオンになっていると、匿名ユーザーの在庫はすぐには更新されません(これがキャッシュのポイントなので理にかなっています)。ただし、これによりUXWTFが少し発生します。製品の在庫がなくても、「1」がまだ利用可能であることがユーザーに表示されます。彼らがそれをカートに追加しようとしたときだけ、彼らは通知で会った 購入できる「商品名」の最大数は0です。 他のすべてのキャッシュを保持したいのですが、利用可能な在庫数のキャッシュを無効にする方法はありますか?
7 7  caching  commerce 

5
キャッシュされたページが期限切れになったときに再構築する方法は?
この素晴らしいQ&Aを読み、良い結果を得た後、ビューキャッシュを使用しています。ビューに「最後のコメント」を表示し、それらの変更を頻繁に行うため、有効期限を短くする必要があります。 コメントが追加されるたびにビューのコンテンツキャッシュを使用してキャッシュを期限切れにすることを考えています。または、ルールを使用してアクションをキャッシュします。 キャッシュが期限切れになった直後に再構築したいのですが?私はブーストモジュールがそれを提供することを読みましたが、認証された訪問者のためのソリューションが必要です(匿名にはVarnishを既に使用しています)。 キャッシュ優雅なモジュールだけで20回のインストール(プラス他のモジュールのカップルが必要です)を持っていることを提供しているようです。 キャッシュを期限切れにしてすぐに「ウォームアップ」できる他のソリューションはありますか?
7 7  caching 

5
消える管理メニューを修正する方法は?
プロジェクトには管理メニューモジュールを使用しています。Drupal 7とPressflow 7のインスタンスでは、一部のメニュー項目のみがランダムに表示されます。 最初は、メニューのキャッシュをクリアすることでこれを修正できると思いました。私がトップページに行ったとき、私はもう一度壊れたメニューを得ました。 このエラーを永続的に解決するにはどうすればよいですか? この問題が詳細に報告されていることがわかりましたが、回避策(メニューキャッシュを無効にする)しかありません。 drush vset admin_menu_cache_client 0回避策として、メニューキャッシュを無効にしました。(私はまだメニューキャッシュを有効にしてこの問題をテストしています。) Firebugブラウザー拡張機能を使用してJavaScriptエラーをチェックして排除しました。 この回答で提案されているように、*。jsファイルからBOMを削除しました。
7 7  routes  caching 

2
特定のノードタイプDrupal 7のキャッシュを停止する
複数のカスタムフィールドを持つノードタイプを使用しています。これらのフィールドの値は、ページが読み込まれるたびに更新する必要がありますが、Drupalのキャッシュ機能のため、更新されません。このコンテンツタイプのキャッシュを停止する最良の方法(最も簡単な方法)は何ですか?
7 caching 

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.