1. 行政

Commerce Engineのキャッシュ

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

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

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

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

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

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

メモ

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

分散キャッシング

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

Diagram showing Redis cache stores for distributed caching using Redis.

メモリキャッシング

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

The memory cache and environment ID.

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

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

},
  "Caching": {
    "Memory": {
      "Enabled": false,
      "CacheStoreName": "Commerce-Memory-Store"
    },
    "Redis": {
      "Enabled": true,
      "CacheStoreName": "Commerce-Redis-Store",
      "IntervalBetweenConnectionAttemptsInSeconds": 60,
      "RedisConnectionPoolSize": 1,
      "RedisCompressionEnabled": true,
      "Options": {
       "Configuration": "PlaceholderForRedisConfiguration",
       "InstanceName": ""PlaceholderForRedisInstanceName"
    }
 }

次の表に、キャッシュ プロバイダーの構成パラメーターの一覧と説明を示します。

キャッシュ プロバイダー

パラメーター

既定値

形容

記憶

Enabled

false

キャッシュ プロバイダーを有効にするかどうかを指定します (bool)。

CacheStoreName

Commerce-Memory-Store

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

EvictionPercentage

0.2

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

MaxSizeInBytes

9223372036854775807 (long.MaxValue)

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

PollingInterval

120

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

SizeLimit

Null (制限なし)

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

ExpirationScanFrequency

60

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

CompactionPercentage

0.05

最大サイズを超えたときに、キャッシュ・データの割合をcompactに設定する (小数で表します)。

Redis(レディス)

Enabled

true

Redisキャッシュ プロバイダーを有効にするかどうかを指定します (bool。

CacheStoreName

Commerce-Redis-Store

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

intervalBetweenConnectionAttemptsInSeconds

60

失敗した接続が再接続を試行するまでの秒数を設定します。

redisConnectionPoolSize

1

接続プールに作成できる接続の数を指定します。

redisCompressionEnabled

true

キャッシュされたデータを圧縮するかどうかを指定します。

Configuration

PlaceholderForRedisConfiguration

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

手記

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

InstanceName

PlaceholderForRedisInstanceName

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

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

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

Commerce Coreプラグインによって定義されるEntityCachingPolicyポリシーは、コマース エンティティのキャッシュ動作を制御します。キャッシュするエンティティごとにエンティティ キャッシング ポリシーを構成できます。次に、エンティティSitecore.Commerce.Plugin.Content.ContentPathのキャッシュ設定を定義する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

Sitecore.Commerce.Plugin.Content.ContentPath

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

AllowCaching

true

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

Priority

Normal

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

  • 低い

  • 正常

  • 高い

  • ネバーリムーブ

Expiration

86400000

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

AbsoluteExpirationRelativeToNow

300000

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

SlidingExpiration

300000

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

HasNegativeCaching

False

エンティティ型のネガティブキャッシングを有効または無効にします (bool.) 。trueに設定すると、エンティティが存在しないという事実がキャッシュされるため、以前に要求され、存在しないエンティティに対して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コレクションにあります) を使用して、キャッシュ コマンドを実行できます。

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

命令

形容

GetCacheStores()

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

GetCacheStore(name)

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

GetDataCacheStore(name)

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

GetCache(name)

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

ClearCacheStore()

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

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

ClearDataStoreCaches()

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

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

ClearCache(name)

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

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

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