---
title: "Commerce Engine Connectのキャッシュ"
slug: "commerce-engine-connect-caching"
abstract: "Commerce Engine Connectのキャッシュの設定方法、分散展開用のRedisキャッシュや開発環境向けのメモリ内キャッシュを含む。"
---
# Commerce Engine Connectのキャッシュ

Commerce Engine(CE)Connectはキャッシュストアのカタログエンティティをキャッシュし、ストアフロントからの迅速なアクセスを可能にします。Commerceカタログの規模や構造の複雑さはメモリキャッシュの挙動に影響を与えることがあります。

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

-   Redis - Redisのキャッシュプロバイダーは、統合、テスト、本番環境を含む分散展開用です。デフォルトではCommerce Engine ConnectはRedisキャッシュを使用します。
-   メモリ - インメモリキャッシュは単一サーバーのデプロイや開発環境のみに適用されます。

## Commerce Engine Connect分散キャッシュ

分散型Commerce展開において、Commerce Engine (CE) ConnectはContent Delivery(CD)およびContent Management (CM)環境のパフォーマンス向上のためにカタログエンティティのキャッシュにRedisを使用します。Redisの単一のインスタンスには、CE ConnectキャッシュとCommerce Engineキャッシュの両方のキャッシュストアを含めます。CE ConnectキャッシュストアはDB0を使用しています。Commerce EngineのキャッシュストアはDB1を使用します。

![Commerce Engine Connect distributed caching in Content Delivery and Content Management environments using Redis.](https://doc.sitecore.com/api/markdown-image/xp/ja/developers/100/sitecore-experience-commerce/images/Dev_Ops_CE_Connect_Caching_9_3.png)

## CE Connectキャッシュ構成

CE Connectキャッシュサービスプロバイダーを変更するか、キャッシュ構成を微調整してCommerceストアフロントの要件に合わせることができます。CE Connectキャッシュ設定はc:\\inetpub\\wwwroot\\<site>\\App\_Config\\Include\\Y.Commerce.EngineフォルダのSitecore.Commerce.Engine.Connect.configファイルにあります。

> !注REDISキャッシュプロバイダーはCE Connectキャッシュ設定でデフォルトで有効化されています。Redisとインメモリキャッシュプロバイダーの両方を有効にするか、両方を無効にすると、CE Connectはインメモリキャッシュを使用します。

以下はSitecore.Commerce.Engine.Connect.configファイル内のRedisキャッシュ構成の例です:

//Redis cache provider configuration//
<commerceCachingConfiguration type="Sitecore.Commerce.Engine.Connect.CommerceCachingConfiguration,Sitecore.Commerce.Engine.Connect.Caching">
 <cachingSettings
type="Sitecore.Commerce.Engine.Connect.CachingSettings,
Sitecore.Commerce.Engine.Connect.Caching">
 <redis
type="Sitecore.Commerce.Engine.Connect.RedisCacheSettings,
Sitecore.Commerce.Engine.Connect.Caching">
 <enabled>true</enabled>
 <cacheStoreName>Commerce-Connector-Redis</cacheStoreName>
 <options
type="Sitecore.Commerce.Engine.Connect.CommerceRedisCacheOptions,
Microsoft.Extensions.Caching.Redis">
 <configuration>localhost,defaultDatabase=1,allowAdmin=true</configuration>
 <instanceName>Redis</instanceName>
 </options>
 </redis>
//In-memory cache provider configuration//       
<memory type="Sitecore.Commerce.Engine.Connect.MemoryCacheSettings,
Sitecore.Commerce.Engine.Connect.Caching">
 <enabled>false</enabled>
 <cacheStoreName>Commerce-Connector-Memory</cacheStoreName>
 </memory>
//Cache entry configuration//
 <cacheEntry
type="Sitecore.Commerce.Engine.Connect.CacheEntrySettings,
Sitecore.Commerce.Engine.Connect.Caching">         
 <cacheName>CommerceConnect</cacheName>
 <expiration>21600000</expiration>
 </cacheEntry>
 /cachingSettings>
</commerceCachingConfiguration>

### Redisプロバイダーパラメータ

Redisキャッシュプロバイダーの設定には以下のパラメータを使用できます:

パラメータ

概要

enabled

プロバイダーが有効化されているかどうかを指定します。  
  
デフォルト値: true。

cacheStoreName

キャッシュストアの名前を設定します。  
  
デフォルト値: Commerce-Connector-Redis

redisConnectionPoolSize

プール内のRedisへの接続数。  
  
デフォルト値: 1

redisCompressionEnabled

Redisプロバイダーがキャッシュデータを圧縮するかどうかを制御します。  
  
デフォルト値: true

configuration

Redisキャッシュプロバイダーの [接続文字列オプション](https://stackexchange.github.io/StackExchange.Redis/Configuration.html#configuration-options) を指定します。以下はデフォルトです:  
  

-   localhost:6379
-   syncTimeout=3600000
-   allowAdmin=True
-   defaultDatabase=1

instanceName

Redisのインスタンス名を設定します。  
  
デフォルト値: Redis

### インメモリキャッシュプロバイダーパラメータ

インメモリキャッシュプロバイダーの設定には以下のパラメータを使用できます:

パラメータ

概要

enabled

プロバイダーが有効化されているかどうかを指定します。  
  
デフォルト値: false。

cacheStoreName

キャッシュストアの名前を設定します。  
  
デフォルト値: Commerce-Connector-Memory

evictionPercentage

キャッシュが最近最も使用頻度の低いエントリを削除し、新しいエントリのためにスペースを作る閾値を設定します。  
  
デフォルト値: 0.2

maxSizeInBytes

キャッシュストアで許可される最大バイトサイズを設定します。  
  
デフォルト値: 9223372036854775807 (long.MaxValue)

PollingInterval

キャッシュストアがメモリ統計を更新する最大時間を設定します。  
  
デフォルト時間: "00:02:00" (2分)。

sizeLimit

キャッシュストアの最大アイテム数を設定します。値が指定されていなければ制限はなく、制限はキャッシュ内で許容される最大サイズ( maxSizeInBytes)値によって決まります)。

expirationScanFrequency

期限切れ商品のスキャン間隔を最小設定します。  
  
デフォルト値: "00:01:00" (1分)

compactionPercentage

最大サイズを超えたキャッシュデータの割合をコンパクトに設定します。  
  
デフォルト値: 0.05

### キャッシュエントリ構成

以下のパラメータを使ってキャッシュエントリを設定することができます(任意のキャッシュプロバイダーに対して):

パラメータ

概要

cacheName

キャッシュの名前を指定します。

expiration

キャッシュエントリが終了する時間(ミリ秒単位)を設定します。デフォルトは21600000です。

priority

キャッシュエントリの優先度を設定します。可能な値は以下の通りです:  
  

-   Low
-   Normal
-   High
-   NeverRemove

absoluteExpirationRelativeToNow

キャッシュエントリが現在のタイムスタンプに対して失効する時間(ミリ秒単位)を設定します。

slidingExpiration

[キャッシュエントリがアクセスされなかった場合に期限が切れるまでの時間をミリ秒単位で設定します。](https://doc.sitecore.com/xp/ja/developers/100/sitecore-experience-commerce/enable-sliding-cache-expiration-in-commerce-engine-connect.html)

### インクリメンタルインデックス後にフルキャッシュリフレッシュをトリガーする閾値

インクリメンタルインデックスプロセスは定期的に動作し、新規または修正されたCommerceアイテムをインデックス化します。新規または修正されたアイテムの数が <fullCacheRefreshThreshold> プロパティ値で指定された閾値を超えると、完全なキャッシュリフレッシュが実行されます。以下はデフォルトの構成を示しています:

<!-- Threshold that triggers a full cache refresh after incremental indexing --> <fullCacheRefreshThreshold>20</fullCacheRefreshThreshold>

## CE Connectキャッシュのメンテナンス

Sitecore Content EditorでCE Connectキャッシュの内容を更新できます。(PostmanのキャッシュAPIサンプルリクエストを使ってCE Connectキャッシュを維持することはできません。)

CE Connectキャッシュを更新するには:

1.  Sitecore Launchpadで「**Content Editor**」をクリックしてください。
2.  **Commerce**タブで「**Commerce Cacheを更新**」をクリックします。

リフレッシュコマースキャッシュ操作は、以下のキャッシュを更新します:

-   Sitecore アイテムキャッシュ
-   コンテンツパスキャッシュ
-   Sitecoreデータキャッシュ
-   標準値キャッシュ
-   テンプレートキャッシュ
-   テンプレートエンジンキャッシュ
-   HTMLキャッシュ
-   カタログエンティティ
-   カタログマッピング(常にメモリにキャッシュ)