独自のCMSを持つ会社で働いていて、データをファイルにキャッシュしていたので、基本的にシステムはキャッシュファイルが存在するかどうかを確認し、存在しない場合はデータベースに移動してデータを取得し、ファイルに保存します。次に、それをユーザーに表示します(基本的なキャッシュ)。これにより、データベースへの接続が減少しました。
これがDrupalへの良いオプションであるかどうか、またはこの方法でキャッシュすることに問題があるかどうかを知りたいです。
Anschauungが述べたように、静的ページキャッシュを作成するには Boost を使用できます。 BoostはページのHTML全体をコピーし、そのHTMLを静的ファイルとしてディスク上の特定のディレクトリに保存します。一連の書き換えルールにより、Webサーバーはまず各リクエストの静的HTMLファイルを探し、見つかった場合はそのファイルを提供します。そうでない場合、通常のDrupalリクエストがPHP経由で発生します。静的ファイルを通じて提供されるリクエストは本当に高速ですが、PHPとデータベースは完全にバイパスされました。
Boostはキャッシュバックエンドの代わりにはなりません。そのDrupalは、Boostによって作成された静的HTMLファイルでミスが発生した場合でも、データベース内のキャッシュテーブルを使用します。完全に置き換えたい場合は、キャッシュバックエンドでは、シリアル化されたオブジェクトをメモリに保存する memcache を調べることができます。Memcachedはサーバー上でデーモンとして実行され、TCP経由で接続できます。これは、良い点と悪い点の両方になる場合があります。環境内のサーバーの数と
データベースにキャッシュテーブルをメモリに保持させることも可能です(少なくともMySQLでは)。ただし、その詳細はわかりません。
実行している場合は、すべて [〜#〜] apc [〜#〜] モジュールを使用できますDrupal 7. APCモジュールはAPC opcodeキャッシュと統合されますDrupalのキャッシュバックエンドとして使用します。APCは、TCP接続オーバーヘッドがないため、特定のシナリオではmemcachedよりも高速です。各APCキャッシュは特定のサーバーに関連付けられていますが、memcachedとデータベースは複数のフロントエンドサーバーで共有されます(これも良いか悪いかです)。
実際、 Boost
モジュールは、まさにあなたが説明していることを実行します-ページのファイルキャッシュを作成し、特定のファイルが存在しない場合はデータベースを再チェックします。
見てください:)
Boostモジュールは同じ方法を実行しますが、Drupalページキャッシュ(ページ全体を単一のデータベースレコードにキャッシュする)、memcache、ニスでも。