はじめに
Magentoでは、パフォーマンス向上のために複数種類のキャッシュが使われています。
ただ、開発中や設定変更後に「どのキャッシュを消せば反映されるの?」と迷うことも多いです。
今回は、Magentoの代表的なキャッシュの種類と、それぞれの使い分け方や注意点を紹介したいと思います。
Magentoの主なキャッシュの種類
Magentoには以下のようなキャッシュがあります(管理画面 > System > Cache Management から確認可能)。
キャッシュ種別 | 説明 |
---|---|
Configuration | 設定値(app/etc など) |
Layouts | XMLレイアウト |
Blocks HTML output | ブロックのHTML出力結果 |
Collections Data | DBのクエリ結果 |
Page Cache | フルページキャッシュ |
Translations | 多言語翻訳キャッシュ |
キャッシュ削除コマンドの違い
MagentoではCLIで以下の2種類のコマンドが使えます。
1)cache:clean(よく使う)
php bin/magento cache:clean
・Magentoが管理しているキャッシュのみ削除
・Config変更後、レイアウト反映、翻訳切替などに有効
・ブラウザのローカルキャッシュには影響なし
管理画面の「Flush Magento Cache」と同じです。
2)cache:flush(より強力)
php bin/magento cache:flush
・Magentoに限らず、バックエンドのキャッシュストレージ全体を削除
・RedisやVarnish等、共有キャッシュも含めて全部消える
・開発環境ではOK、本番で乱用注意※
管理画面の「Flush Cache Storage」と同じです。
※例えばRedisをセッション用とキャッシュ用で同じDB番号にまとめていたりすると、セッションも巻き込んで全て削除されてしまう→全ユーザのログインが切れたりするので、構成は確認しておきましょう。
よくある使い分けパターン
シーン | 使うコマンド | 理由 |
---|---|---|
設定変更したけど反映されない | cache:clean |
設定キャッシュが残っているため |
テーマのレイアウトXMLを変更 | cache:clean |
LayoutとBlockキャッシュを更新 |
開発中、とにかくすべて初期化したい | cache:flush |
Redis/Varnish含めて全部クリア |
ページの表示崩れや不整合が起きている |
|
Block等のキャッシュが影響 キャッシュの破損の可能性もあり |
まとめ
設定やデザインが反映されない場合、まずは cache:clean やっとこ!な感じになりますが、その奥でどの種類のキャッシュが効いているのかを意識できると、よりスムーズな開発・運用ができるようになります。