キャッシュ戦略まとめ¶
本ドキュメントは、Storefront / Vendure / WordPress 間のキャッシュ方針を整理したものです。
概要¶
- Storefront (Next.js):
fetchのrevalidateでデータキャッシュを管理 - Vendure: Redis があれば Redis キャッシュ、なければ in-memory
- WordPress (WPGraphQL): サーバー側のキャッシュは未実装(Storefront 側でキャッシュ)
Storefront (Next.js) のデータキャッシュ¶
WordPress 連携のキャッシュ設定¶
| 種別 | 取得元 | キャッシュ | 設定箇所 |
|---|---|---|---|
| ストア設定(OGP含む) | WordPress | 24時間 (revalidate: 86400) |
apps/storefront/src/lib/cms/wordpress/store-settings.ts |
| メニュー | WordPress | 1時間 (revalidate: 3600) |
apps/storefront/src/lib/cms/wordpress/menus.ts |
| お知らせ一覧 | WordPress | 1時間 (revalidate: 3600) |
apps/storefront/src/lib/cms/wordpress/announcements.ts |
| お知らせ詳細 | WordPress | キャッシュなし (no-store) |
apps/storefront/src/lib/cms/wordpress/announcements.ts |
| キャンペーン一覧 | WordPress | 1時間 (revalidate: 3600) |
apps/storefront/src/lib/cms/wordpress/campaigns.ts |
| Heroスライド(バナー) | WordPress | 1時間 (revalidate: 3600) |
apps/storefront/src/lib/cms/wordpress/hero-slides.ts |
| 商品リッチ説明 | WordPress | 6時間 (revalidate: 21600) |
apps/storefront/src/lib/cms/wordpress/products.ts |
| 固定ページ | WordPress | キャッシュなし (no-store) |
apps/storefront/src/lib/cms/wordpress/pages.ts |
OGP 反映¶
- OGP は WordPress のストア設定を参照して
generateMetadataで反映する - 実質のキャッシュは ストア設定の
revalidate: 86400に依存 - 設定箇所:
apps/storefront/src/app/(site)/layout.tsx
Vendure のキャッシュ¶
- Redis が利用可能な場合は Redis を使う
- Redis 未設定の場合は in-memory キャッシュ
- 設定箇所:
apps/vendure-server/src/vendure-config.shared.ts
WordPress (WPGraphQL)¶
- 連携は Vendure の WordPress プラグイン経由
- WPGraphQL 側の結果キャッシュは未実装
- 設定箇所:
packages/plugins/src/cms-integration/wordpress/wordpress.service.ts
即時反映の方針(未実装)¶
- WordPress 更新時に Storefront の
revalidateTagを叩く仕組みを追加すれば、長いキャッシュでも即時反映できる