Sitecore 10.1のキャッシュ戦略

Sitecore-Unveils-SaaS-Strategy_-Announces-Updates-to-Experience-Platform-and-Content-Hub-at-Symposium-20191

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

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

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

1. アイテムに直接設定こと

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

Content Editor > Page Item > Presentation Details > Click on the rendering

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

presentation-caching

2. レンダリングに直接

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

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

rendering-caching

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

3. キャッシュ可能

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

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

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

5. デバイスによって異なること

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

Cache Vary by Device

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

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

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

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

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

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

9. ユーザーごとの表示

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

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

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

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

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

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

cache-clearing-behavior

Cache Content Dependencies

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

►►►サービスについて