Sitecore 10.1の キャッシュ戦略

Sitecoreでは、HTMLキャッシュはページ全体ではなくレンダリング/コンテンツ(またはページの一部)をキャッシュするために使用され、通常、HTMLキャッシュはWebサイトのパフォーマンスを向上させるために役立ちます。通常、HTMLキャッシュはウェブサイトのパフォーマンスを向上させるために役立ちます。

Sitecore 10.1では、さまざまなシナリオに対応したキャッシュおよびキャッシュクリア戦略が用意されていますが、キャッシュクリア戦略をより柔軟に設定できる新しいオプションが追加されました。

設定変更の必要がないすべてのキャッシュオプションから始めて、これらのオプションがどのようなものか、その使用例を概観してみましょう。

1.アイテム直接設定

Sitecoreでキャッシュを有効にするには、アイテムのプレゼンテーションの詳細(この特定のアイテムにのみキャッシュを適用する場合)、またはこのレンダリングを使用するすべてのアイテムに設定する場合は、レンダリングにアクセスするだけです。

以下のステップを順番に実施します。

コンテンツエディター>ページアイテム>プレゼンテーションの詳細>レンダリングクリック

このオプションは、この1つのアイテムと1つのインスタンスに対してのみ機能します。これは一般的には推奨されず、通常はコンテンツ作成者が知る必要のないことだと思われます。

2.レンダリング直接アクセス

Content Editor> “sitecore/layout/Renderings/*” キャッシュを設定したいレンダリングを選択します。

このレンダリングを使用するすべてのページアイテムは、ページアイテム上で直接オーバーライドしない場合、この設定を使用します。これにより、キャッシュがサイト全体に一貫して適用され、期待通りの動作をするようになります。また、後から変更を加えると、コンポーネントのすべてのインスタンスに自動的に反映されます。

キャッシュ設定の場所がわかったところで、オプションといくつかの使用例を見てみましょう。

3.キャッシュ可能

基本的に、このコンポーネントはキャッシュされるべきであるということをSitecoreに伝えます。「Vary by」オプションを有効にするには、このオプションを有効にする必要があります。この設定のみを有効にすると、Sitecoreはこのレンダリングに対してキャッシュを作成し、コンポーネントがすべてのページで使用されるたびに同じコンテンツを表示するために使用します。たとえば、ページのヘッダーにユーザー名を表示している場合、このレンダリングをキャッシュすることはできず、レンダリング時にすべてのユーザーが同じ名前になってしまいます。例えば、このようなコンポーネントがある場合、それを直接キャッシュすることはできません。

この問題を解決するために、Sitecoreはキャッシュを使い続けることができるように、次のようなオプションを提供しています。

4.データによって変化させること

これは、Sitecoreがこのレンダリングのデータソース(データソースが設定されていない場合は現在のコンテキストアイテム)に基づいてキャッシュすることを意味します。これは、フッター、ヘッダー、プライバシー、その他の規約ページなど、あまり変更されないコンテンツ/レンダリングがある場合や、データソースに基づいてタイトルや画像を含むカードリストなどのコンポーネントがある場合に非常に便利です。コンポーネントは、現在のサイト、言語、レンダリングID、アイテムIDで構成される固有のキャッシュキーに基づいてキャッシュされます。同じレンダリングでも、データソースが別のアイテムである場合は、このコンポーネント用に新しいキャッシュが作成されます。

5.デバイスによる変化

ここでのコンセプトは上記とほぼ同じですが、ここではSitecoreに対して、デバイスごとに異なるキャッシュエントリを作成するように指示していますが、これはSitecoreで複数のデバイスを設定しているかどうかによって異なります。最近はほとんどのサイトがレスポンシブになっているので、あまり使われていないのかもしれません。

6.ログインによって異なること

これを選択すると、Sitecoreはこのレンダリングの2つのコピーをキャッシュします。1つは認証されたユーザー用、もう1つは認証されていないユーザー用です。これは、ログインしたユーザーと匿名のユーザーに異なるコンテンツを提供する場合に便利です。

7.パラメータによる変更

これは、「レンダリングパラメータ」に基づいてコンテンツの異なるコピーをキャッシュするようSitecoreに指示します。Sitecoreのパラメータを使用して、コンテンツの表示方法を変えたい場合に便利です。例えば、ここに色を追加したり、レンダリングパラメータテンプレートを使用して、これに基づいてレンダリングを作成したりする場合に便利です。

8.クエリ文字列によって変化させること

これを選択すると、Sitecoreはクエリ文字列ごとに異なるデータをキャッシュします。例えば、検索ページのように、クエリ文字列に基づいてレンダリングするページがある場合、テキスト検索、結果ページ、フィルタをクエリ文字列として選択した場合に使用できます。

9.ユーザーによる変更

Sitecoreでは、キャッシュを使用したいが、異なるユーザーの情報を表示する必要がある場合に、その問題を解決する方法を提供しています。例えば、認証されたユーザーの名前をヘッドなどに表示する場合、Sitecoreは表示されている各ユーザーのキャッシュを作成します。しかし、このオプションには注意が必要です。サイトに多くのユーザーがいる場合、キャッシュのサイズが非常に大きくなる可能性があります。

Sitecore 10.1では、様々な方法でコンテンツをキャッシュする機能が用意されており、ほとんどのサイトで使用されている基本的な機能が網羅されていますが、必要に応じて拡張し、キャッシュを作成するための新しいルールを(プログラムで)作成することができます。ここで、もう一つのチェックボックスについて説明します。これは、キャッシュがいつ更新され、Sitecoreがいつクリアして新しいキャッシュエントリを作成するかというもので、基本的には2つのオプションがあります。

10.インデックス更新時のクリア

Sitecoreは、インデックスを更新したときにキャッシュをクリアします。これは、検索関連のページのように、インデックスに依存してレンダリングされるコンテンツを使用している場合に非常に便利です。

11.キャッシュクリアの動作:Sitecore 10.1での新しいアプローチ

Sitecore 10.1では、公開時にキャッシュの一部のみをクリアする機能が追加されました。このオプションを使用すると、Sitecoreに、公開ごとにキャッシュをクリアする、または関連するコンテンツアイテムが公開された場合にのみキャッシュをクリアするといった動作を指示することができます。また、パブリッシュ時にキャッシュをクリアするだけでなく、コンポーネントの構築時に使用された可能性のある関連アイテム間の依存関係を設定することもできます。使用例としては、ヘッダーやフッターのコンポーネントがあります。これらのコンポーネントは、構築するために多くのアイテムに依存しているため、パブリッシュのたびにクリアすることができます。しかし、ヒーローコンポーネントのような別のコンポーネントは、Datasource アイテムが更新されてパブリッシュされたときにのみ、キャッシュから削除する必要があります。ここでのもう一つの新機能は、コンテンツの依存関係を作成してこのキャッシュをクリアすることができることです。これにより、関連するアイテムがパブリッシュされたときに、プログラムによる作業なしにクリーニング戦略を改善できる可能性があります。

この記事では、Sitecore 10.1に搭載されているキャッシュ戦略と、その使用例について説明します。キャッシュは便利なだけではなく、Sitecoreサイトで訪問者に最高のパフォーマンスを提供するためには重要です。Sitecoreの各種キャッシュは、おそらくパフォーマンス問題に関連する最も重要なものの1つです。したがって、問題が発生している場合は、キャッシュが正しく設定されていることを確認する必要があります。また、将来的に問題を回避したい場合は、開発時にこの設定が計画されていることを確認してください。もしそうしていないのであれば、キャッシュされるコンテンツを変更したり、改善したり、より多くのキャッシュ戦略を追加することは難しいことではないということです。

►►►サービスについて