キャッシュフロントエンドの設定

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

これは、キャッシュされたデータの種類ごとに異なるキャッシュバックエンドまたは設定を使用する場合に便利です。 例えば、defaultのキャッシュに別のデータベースを使用する場合、専用のRedis データベースでfull_pageのキャッシュを行う必要があります。

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

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
最新のSymfony Cache実装(2.4.9以降): Commerce 2.4.9以降では、最新のSymfony Cache実装でredisvalkeyfileなどの簡素化されたバックエンドタイプを使用できます。 詳しくは、​ デフォルトのキャッシュにRedisを使用および​ デフォルトのキャッシュにValkeyを使用を参照してください。

手順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): 'backend' => 'redis' (Commerce 2.4.9以降をお勧めします)
最新のSymfony Cache実装は、PSR-6 コンプライアンス、Igbinary シリアル化、gzip圧縮、Lua スクリプト、および永続的な接続を通じて、より優れたパフォーマンスを提供します。

Zend ベースのオプションについては、Laminasのドキュメント ​を参照してください。また、RedisおよびValkeyの最新のSymfony キャッシュガイドも参照してください。

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