キャッシュフロントエンドとタイプの設定

キャッシュフロントエンドとは、Commerceのキャッシュタイプとキャッシュストレージバックエンドの間のインターフェイスのことです。 複数のフロントエンドを定義し、それぞれ異なるバックエンド設定を使用して、特定の​ キャッシュタイプ ​を各フロントエンドに割り当てることができます。

この関係を使用して、各キャッシュタイプがデータを保存する場所を決定します。

cache type -> cache frontend -> cache backend

これは、キャッシュされたデータの種類ごとに異なるキャッシュバックエンドまたは設定を使用する場合に便利です。 例えば、専用のValkey データベースを使用するpage_cache フロントエンドにfull_page キャッシュ タイプを割り当てる場合や、他のキャッシュ タイプがdefault フロントエンドを使用する場合があります。

NOTE
Adobe Commerce on Cloud プロジェクトのキャッシュ設定手順については、RedisおよびValkey サービス設定のベストプラクティス ​を参照してください。 Redis キャッシュは、Adobe Commerce 2.4.9、または2.4.5-p16、2.4.6-p14、2.4.7-p9、および2.4.8-p5以降のパッチリリースではサポートされていません。 Redisがサポートされていないキャッシュ設定にはValkeyを使用します。 リリース別のサポートされているキャッシュサービスについては、必要システム構成を参照してください。

デフォルトのフロントエンドを使用する

Commerceには、すべてのキャッシュタイプに対応するdefault キャッシュフロントエンドが用意されています。 Magento\Framework\Cache\Core フロントエンドキャッシュを実装することで、Zend_Cache_Coreを拡張します。

ほとんどの場合、フロントエンドをカスタマイズする必要はありません。 バックエンドを設定するだけです。 ​ キャッシュバックエンドオプション ​を参照してください。

カスタムキャッシュフロントエンドの定義

次の手順では、キャッシュフロントエンドをキャッシュタイプに関連付ける方法を説明します。

手順1:キャッシュフロントエンドの定義とキャッシュタイプの割り当て

カスタムキャッシュフロントエンドを定義するには、設定をapp/etc/env.phpに追加します(設定はdi.xmlを上書きします)。

'cache' => [
    'frontend' => [
        '<unique frontend id>' => [
             <cache options>
        ],
    ],
    'type' => [
         <cache type 1> => [
             'frontend' => '<unique frontend id>'
        ],
         <cache type 2> => [
             'frontend' => '<unique frontend id>'
        ],
    ],
],

どこで:

  • <unique frontend id> — フロントエンドを識別するための一意の名前(例:defaultpage_cachestale_cache_enabled
  • <cache options> – このフロントエンドのバックエンドタイプとオプション(​ キャッシュオプション ​を参照)
  • <cache type> – このフロントエンドに割り当てるCommerce キャッシュの種類(例:configlayoutblock_htmlfull_page
TIP
Adobe Commerce 2.4.9以降では、Symfony Cache実装でvalkeyfileなどの簡略化されたバックエンドタイプ名を使用します。 バックエンドの例とバージョン固有のガイダンスについては、​ キャッシュバックエンドオプション ​を参照してください。

手順2:フロントエンドとバックエンドオプションの設定

フロントエンドとバックエンドのキャッシュ設定オプションは、env.phpまたはdi.xmlで指定できます。 このタスクはオプションです。 オプションを指定しない場合、Commerceではデフォルトのフロントエンドとバックエンドの設定が使用されます。

env.php例:

'frontend' => <frontend_type>,
'frontend_options' => [
    <frontend_option> => <frontend_option_value>,
    ...
],
'backend' => <backend_type>,
'backend_options' => [
    <backend_option> => <backend_option_value>,
    ...
],

どこで:

  • <frontend_type> – 低レベルのフロントエンド キャッシュ タイプ。 Zend\Cache\Coreと互換性のあるクラス名を指定してください。省略した場合は、Magento\Framework\Cache\Coreが使用されます。

  • <frontend_option><frontend_option_value> — Commerce フレームワークが作成時に自動化配列としてフロントエンドキャッシュに渡すオプションの名前と値。

  • <backend_type> – 下位レベルのバックエンド キャッシュの種類。 次を指定できます。

    • 最新のSymfony キャッシュ (2.4.9以降、推奨): redisvalkeyfileなどの簡略化された名前
    • レガシー(Zend ベース): Zend_Cache_Backend_Interfaceを実装するZend_Cache_Backendと互換性のあるフルクラス名
  • <backend_option><backend_option_value> — Commerce フレームワークが作成時にバックエンドキャッシュに連想配列として渡すオプションの名前と値。

NOTE
従来の実装と最新の実装の比較:
  • レガシー(Zend ベース): 'backend' => 'Magento\\Framework\\Cache\\Backend\\Redis'
  • 最新(Symfony Cache): Commerce バージョン 2.4.9以降およびValkeyがサポートされているキャッシュバックエンドである2.4.5 ~ 2.4.8のリリースラインの現在のパッチリリースの'backend' => 'valkey'
最新のSymfony Cache実装は、PSR-6 コンプライアンス、Igbinary シリアル化、gzip圧縮、Lua スクリプト、および永続的な接続を通じて、より優れたパフォーマンスを提供します。

Zend ベースのオプションについては、Laminas ドキュメント ​を参照してください。 Symfony Cacheの設定については、このドキュメントのRedisおよびValkeyの記事を参照してください。

recommendation-more-help
commerce-operations-help-configuration