1. 行政

Commerce Engineのキャッシュ

Version:
日本語翻訳に関する免責事項

このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。

リリース9.2以降、Sitecore XCソリューションは2つのキャッシュ プロバイダーをサポートします。

  • Redis - Redisキャッシュ プロバイダーは、統合、テスト、運用環境などの分散デプロイで使用するためのものです。デフォルトでは、Commerce EngineはRedisキャッシュを使用します。

  • Memory - インメモリ キャッシュは、単一サーバーのデプロイと開発環境でのみ使用できます。

各Commerce Engineサービス ロールには、キャッシュ ストアがあります。 キャッシュ・ストアには複数のキャッシュが含まれており、キャッシュは、環境に関連付けられたアーティファクト・ストアIDに従って、データ・キャッシュ・ストアにグループ化されます。同じアーティファクト ストアIDを持つ環境は、キャッシュ ストア内で同じキャッシュ データを共有しますが、そのキャッシュ データは、異なるアーティファクト ストアIDを持つ環境から分離されます。

メモ

Sitecore XCのキャッシュはopt-inモデルに従っているため、キャッシュはデフォルトで無効になっています。キャッシュするコマースエンティティと非エンティティのキャッシュは、ポリシー設定を通じて明示的に有効にする必要があります。

メモリキャッシング

単一サーバー展開の場合は、メモリ キャッシュ プロバイダーを使用してコマース アイテムをキャッシュできます。マシンでホストされているすべてのCommerce Engineサービス ロールは、メモリ キャッシュ ストアを使用して、要求ヘッダーで指定された環境IDに基づいてキャッシュされたデータを取得します。

Diagram showing cache stores for in-memory caching.

分散キャッシング

スケーリングされたデプロイでは、Redisキャッシュ プロバイダーを使用して、システムの一元化されたキャッシュ ストアをホストできます。各Commerce Engineサービス ロールは、要求ヘッダーで指定された環境IDに基づいて、キャッシュ ストアにアクセスし、キャッシュ データを取得できます。

Diagram shows that shows the Redis cache stores for distributed caching.

キャッシュ プロバイダーの構成

キャッシュ プロバイダーの設定は、Commerce Engine config.jsonファイルに保存されます。1つのキャッシュ プロバイダーを有効にする必要があり、一度に有効にできるキャッシュ プロバイダーは1つだけです。Redisキャッシュ プロバイダーは、既定で有効になっています。

},
  "Caching": {
    "Memory": {
      "Enabled": false,
      "CacheStoreName": "Commerce-Memory-Store"
    },
    "Redis": {
      "Enabled": true,
      "CacheStoreName": "Commerce-Redis-Store",
      "Options": {
        "Configuration": "localhost",
        "InstanceName": "Redis"
    }
 }

キャッシュプロバイダーに対して次のパラメーターを設定できます。

キャッシュ プロバイダー

パラメーター

形容

記憶

CacheStoreName

キャッシュ ストアの名前を設定します。

デフォルト: false

EvictionPercentage

キャッシュが使用頻度の低いエントリを削除して、新しいエントリ用のスペースを確保するしきい値を設定します。

デフォルト: 0.2

MaxSizeInBytes

キャッシュ ストアで許可される最大サイズをバイト単位で設定します。

デフォルト: 9223372036854775807(long.MaxValue)

PollingInterval

キャッシュ ストアがメモリ統計を更新するまでの最大時間を秒単位で設定します。

デフォルト: 120

SizeLimit

キャッシュ ストアの項目の最大数を設定します。値が指定されていない場合、制限はなく、制限はキャッシュで許可される最大サイズに基づきます。

デフォルト: Null (制限なし)

ExpirationScanFrequency

期限切れの項目をスキャンする間の最小時間を秒単位で設定します。

デフォルト: 60

CompactionPercentage

最大サイズを超えた場合に、キャッシュ・データの割合を圧縮するように設定します。

デフォルト: 0.05

Redis(レディス)

CacheStoreName

キャッシュ ストアの名前を設定します。

Configuration

Redisキャッシュ プロバイダーの接続文字列を指定します。

手記

特定のデプロイ要件を満たすために、接続文字列 に追加のRedis設定オプション を追加できます。

InstanceName

Redisインスタンス名を設定します。

エンティティのキャッシュ構成

Commerce Coreプラグインは、Commerce Engineのエンティティ キャッシュを制御するポリシーを提供します。

EntityCachingPolicyポリシーは、コマース エンティティのキャッシュ動作を定義します。次の例に示すように、キャッシュするエンティティごとにエンティティ キャッシング ポリシーを構成できます。

{ 
  "$type": "Sitecore.Commerce.Core.EntityCachingPolicy, Sitecore.Commerce.Core", 
  "EntityFullName": "Sitecore.Commerce.Plugin.Content.ContentPath", 
  "AllowCaching": true, 
  "Priority": "Normal", 
  "Expiration": 86400000, 
  "HasNegativeCaching": true, 
  "CacheName": "ContentPaths", 
  "EntityIdPrefix": "Entity-ContentPath" 
} 

次の表では、エンティティ キャッシング ポリシー設定のパラメータについて説明します。

パラメーター

形容

EntityFullName

キャッシュするエンティティ型の完全な名前を設定します。

AllowCaching

エンティティのキャッシュを有効または無効にします。

デフォルト: true

Priority

キャッシュエントリの優先度を設定します。可能な値は次のとおりです。

  • Low

  • Normal

  • High

  • NeverRemove

Expiration

キャッシュエントリの有効期限が切れるまでの時間の長さをミリ秒単位で設定します。

AbsoluteExpirationRelativeToNow

キャッシュエントリの有効期限を現在のタイムスタンプを基準にして、ミリ秒単位で設定します。

SlidingExpiration

キャッシュエントリがアクセスされていない場合に期限切れになる時間の長さをミリ秒単位で設定します。

HasNegativeCaching

エンティティ型のネガティブキャッシュを有効または無効にします。ネガティブ キャッシュは、以前に要求され、存在しないエンティティに対してSQL Serverを繰り返し呼び出すのを防ぎます。

CacheName

このエンティティ型のキャッシュの名前を設定します。

EntityIdPrefix

エンティティの種類を識別するプレフィックス。

キャッシング・ポリシー・セット

Sitecore XCソリューションには、システム キャッシュ設定を含むキャッシング ポリシー セット ファイルが含まれています。Sitecore XCソリューションに含まれるすべての既定の環境 (Habitatなど) は、既定のキャッシュ ポリシー セットを参照します。

Plugin.Caching.PolicySet-1.0.0.jsonファイルはwwwroot\data\Environmentsフォルダーに格納され、コマース エンティティと非エンティティのキャッシュ ポリシーが含まれています。

キャッシング・ポリシー・セットには、以下のコマース・エンティティー・キャッシュのポリシー構成が含まれています。

  • コンテンツ パス キャッシュ

  • コンテンツ項目キャッシュ

  • ショップキャッシュ

  • ポリシー・セット・キャッシュ

  • エンティティ インデックス キャッシュ

  • プロモーションキャッシュ

  • プロモーション ブック キャッシュ

  • カタログ・キャッシュ

  • カテゴリキャッシュ

  • リレーションシップ定義キャッシュ

  • Sellable商品キャッシュ

  • インベントリ セット キャッシュ

  • プライスカードキャッシュ

  • Price Booksキャッシュ

  • ローカライゼーションエンティティキャッシュ

  • バージョニングエンティティキャッシュ

  • ワークフローキャッシュ

さらに、キャッシング・ポリシー・セットには、以下の非エンティティー・アイテムのキャッシング・ポリシー構成が含まれています。

  • 管理キャッシュ (Commerce Control Panelから品目モデル オブジェクトをキャッシュします)

  • カスタム関係キャッシュ (カスタム関係のリストをキャッシュします)

  • 関連付けられた/関連付け解除されたカタログ キャッシュ (各プロモーション ブックの関連付けられたカタログと関連付け解除されたカタログのリストをキャッシュします)

  • ローカライズされた用語キャッシュ (コマースのローカライズされた用語の一覧をキャッシュします)

  • Customer Statusesキャッシュ (ローカライズされた顧客ステータスのリストをキャッシュします)

  • キャッシュ・ポリシーを返す (ローカライズされた返品理由のリストをキャッシュする)

キャッシングAPIコマンド

キャッシュは、CommerceOps APIを使用して管理します。Postmanサンプル ( SitecoreCommerce_DevOpsコレクションにあります) を使用して、キャッシュ コマンドを実行できます。

手記

ClearEnvironmentCache(environmentName) コマンドは、Sitecore XCリリース9.2から廃止されました。

次の表に、キャッシュのAPIコマンドを示します。

命令

形容

GetCacheStores()

システム内のすべてのキャッシュ・ストアを取得します。

GetCacheStore(name)

名前付きキャッシュ ストアを取得します。

GetDataCacheStore(name)

キャッシュ ストア内で、環境のアーティファクト ストアIDと一致するキャッシュを取得します。

GetCache(name)

名前付きキャッシュを取得します。キャッシュがキャッシュ ストアに存在しない場合、システムは404エラーを返します。

ClearCacheStore()

キャッシュ ストア内のすべてのキャッシュをクリアします。

このコマンドは、Redisキャッシュ プロバイダーではサポートされていません。Redisのキャッシュ ストアを直接クリアする必要があります。

ClearDataStoreCaches()

データ ストア内のすべてのキャッシュをクリアします。Commerce Engineは、要求ヘッダーで指定された環境名からデータ ストアを決定します。

このコマンドは、Redisキャッシュ プロバイダーではサポートされていません。Redisで直接データストアをクリアする必要があります。

ClearCache(name)

キャッシュ ストア内の名前付きキャッシュをクリアします。

このコマンドは、Redisキャッシュ プロバイダーではサポートされていません。Redisでキャッシュを直接クリアする必要があります。

この記事を改善するための提案がある場合は、 お知らせください!