詳細情報:
B2C Commerce でのページキャッシュとレプリケーション
コードのレプリケーションとデータのレプリケーションの両方で、ページキャッシュに影響があります。特定のレプリケーションタスクでは、キャッシュが自動的に無効になり、更新されます。また、キャッシュを手動でクリアする場合もあります。
キャッシュにアクセスするには、アプリケーションランチャー
をクリックし、の順に選択します。
キャッシュのクリア動作
データまたはコードのレプリケーションが実行されると、サイトキャッシュの無効化が自動的に開始されます。キャッシュの無効化を手動で開始すると、システムはキャッシュされたデータを無効にするプロセスを開始します。パフォーマンスへの影響を軽減し、中断の可能性を最小限に抑えるために、キャッシュの削除は 15 分間 (ここでは「クリア期間」と呼びます) で完了します。
このプロセスを使用するキャッシュ無効化のタイプは次のとおりです。
- を介したキャッシュの無効化 (サイト全体またはパーティション)
- ページキャッシュの無効化をトリガーするジョブ
ベストプラクティス
- キャッシュの無効化は、必要な場合にのみ実行してください。
- キャッシュ無効化リクエストを開始した後、システムが削除プロセスを完了するまで「クリア期間」が経過するのを待ちます。
- 頻繁な価格変更など、サイトを頻繁に更新する必要があるユースケースでは、データのレプリケーションではなく「詳細なレプリケーション」を使用することを検討してください。これにより、「クリア期間」を待たずにサイトを更新できます。
- データが古いためにキャッシュの無効化を頻繁に実行している場合は、古いデータの根本原因を調査して、キャッシュの無効化を繰り返しリクエストしないようにします。
- 古いキャッシュデータを提供するサイトでトラブルシューティングを行うには、キャッシュの無効化やキャッシュパーティションの無効化を頻繁にトリガーするスケジュールされたジョブを Business Manager で確認します。
詳細については、以下を参照してください。
コードのレプリケーション
Staging (ステージング) インスタンスから Production (本番) インスタンスへのコードレプリケーション処理の最終ステップでは、キャッシュが自動的にクリアされます。コードやページの変更を Production (本番) に直接デプロイする場合 (推奨されません) は、キャッシュを手動でクリアします。
データのレプリケーション
データのレプリケーション処理の最終ステップでは、以下に説明する場合を除き、デフォルトでキャッシュが無効にされ、更新されます。
キャッシュの自動クリアをスキップするようにレプリケーション処理を構成します。ただし、この機能を使用すると、ストアフロントに表示されるデータに一貫性がなくなる可能性があり、この原因の診断は困難であるため、この機能の使用には充分注意する必要があります。レプリケートする変更の範囲を理解し、できるだけ規模を小さくするようにしてください。
たとえば、次のようなシナリオを考慮します。商品説明ページを 24 時間キャッシュし、次の日の夜にページキャッシュをクリアするようにスケジュールしているとします。Production (本番) インスタンスでいくつかの商品価格が間違っていることに気付きます。まず、Business Manager の Staging (ステージング) インスタンスでその価格を修正します。次に、ページキャッシュのクリアをスキップするように設定したレプリケーション処理を使用して Production (本番) にその変更をレプリケートします。この処理により、両方のインスタンスで価格情報を同期でき、買い物カゴには必ず正しい商品価格が表示されるようになります (買い物カゴはキャッシュされません)。
また、キャッシュの自動更新を省略するということは、スケジュールされているページキャッシュのクリアが発生するまで、ストアフロントの商品説明ページに古くて不正確な価格が表示されることになります。ただし、このトレードオフによって、本番のキャッシュの更新によるパフォーマンスの低下を防ぐことができます。
- サイト固有データをレプリケートすると、影響を受けるサイトのページキャッシュがクリアされます。このキャッシュの自動更新は、クーポン、ソースコード、Open Commerce API 設定、またはアクティブデータフィードのみをレプリケートする場合には実行されません。
- グローバルデータをレプリケートする場合、位置情報または顧客リストのみをレプリケートする場合を除いて、影響を受けるすべてのサイトのページキャッシュがクリアされます。
- カタログ、サイト、または価格表をレプリケートする場合、キャッシュは自動的にクリアされます。プロモーションまたは静的コンテンツのみをレプリケートする場合、キャッシュは自動的にはクリアされません。
- カタログをレプリケートする場合、以下の表に説明されているルールを使って、影響を受けるサイトのページキャッシュが選択的にクリアされます。
| レプリケートするカタログ | ページキャッシュがクリアされるサイト |
|---|---|
| 組織の全サイトのカタログすべて | この組織のすべてのストアフロントサイト。 |
| 1 つまたは複数のサイトに割り当てられている 1 つのカタログ | カタログが割り当てられているサイト。 |
| 直接サイトには割り当てられていないが、1 つまたは複数のサイトまたはナビゲーションカタログの商品リポジトリとして機能するマスターカタログ。 | このマスターカタログからの商品を提供するストアフロントのサイト。プログラムを使用して判断されます。関連しないストアフロントサイトのページキャッシュはクリアされません。 |
また、ページキャッシュパーティションを無効にするレプリケーション処理は、レプリケーション処理に対して選択されたレプリケーションタスクに一致するレプリケーションタスクが割り当てられている場合にのみ構成します。ストアフロントページのキャッシュの他の部分は変更されません。影響を受けるページキャッシュパーティションのリストが、レプリケーション処理の概要ページに表示されます。
このオプションを有効にするには:
- ページキャッシュパーティションを Staging (ステージング) インスタンスで定義します。
- Staging (ステージング) インスタンスと、データのレプリケート先となるターゲットインスタンス (Development (開発) または Production (本番)) で、すべてのサイトのすべてのページキャッシュパーティションを同期させます。
各サイトで 'キャッシュの設定' レプリケーションタスクを使用し、ページキャッシュパーティションが同期されていない場合はデータレプリケーションを実行して同期します。
また、キャッシュパーティションの管理で、パーティションタスクを個々のページキャッシュパーティションに割り当てられるようになりました。
たとえば、コンテンツ固有のページ (コンテンツスロットまたはコンテンツアセット)に関連するキャッシュパーティションを、特定の共有ライブラリ、サイトのコンテンツライブラリ、コンテンツスロットのレプリケーションタスクに割り当てることができます。
キャッシュクリアのトラブルシューティング
ページキャッシュで問題が発生した場合は、次のヒントを参照してください。
- Business Manager でキャッシュを手動でクリアする前に、問題がローカルではないことを必ず確認してください。ブラウザを閉じ、ローカルキャッシュをクリアして確認します。
- 埋め込み CDN (すべての Production (本番) 環境と Development (開発) 環境) で手動によりキャッシュをクリアするには、「サイトのページ全体キャッシュ」の説明の隣にある無効にするをクリックします。静的キャッシュもクリアする必要はありません。
- 変更が期待通りに表示されない場合は、より具体的な問題を示すパターンを探します。たとえば、画像が更新されていない場合があります。その場合は、Scene 7 などの画像プロバイダーに問題がある可能性があります。問題の原因がコンテンツアセットにある場合は、コンテンツアセットがデプロイされていることを確認してください。
