コンテンツにスキップ

カスタムNext.jsキャッシュハンドラ

ページのキャッシングと再検証 (インクリメンタル静的再生成を使用) は、同じ共有キャッシュを使用します。Vercelにデプロイする場合、ISRキャッシュは自動的に永続ストレージに保存されます。

セルフホスティングの場合、ISRキャッシュはNext.jsサーバーのファイルシステム (ディスク上) に保存されます。これは、Pages RouterとApp Routerの両方を使用してセルフホスティングする場合に自動的に機能します。

キャッシュされたページとデータを永続ストレージに保持したり、複数のコンテナまたはNext.jsアプリケーションのインスタンス間でキャッシュを共有したい場合は、Next.jsのキャッシュ場所を設定できます。

next.config.js
module.exports = {
  cacheHandler: require.resolve('./cache-handler.js'),
  cacheMaxMemorySize: 0, // disable default in-memory caching
}

カスタムキャッシュハンドラの例を参照し、実装の詳細をご覧ください。

APIリファレンス

キャッシュハンドラは、以下のメソッドを実装できます: getset、およびrevalidateTag

get()

パラメーター説明
keystringキャッシュされた値のキー。

キャッシュされた値、または見つからない場合はnullを返します。

set()

パラメーター説明
keystringデータを保存するキー。
dataDataまたはnullキャッシュされるデータ。
ctx{ tags: [] }提供されるキャッシュタグ。

Promise<void>を返します。

revalidateTag()

パラメーター説明
tagstringまたはstring[]再検証するキャッシュタグ。

Promise<void>を返します。データの再検証またはrevalidateTag()関数について詳しく学ぶ。

知っておくと良いこと

  • revalidatePathはキャッシュタグの便利なレイヤーです。revalidatePathを呼び出すと、revalidateTag関数が呼び出され、そこでパスに基づいてキャッシュキーにタグを付けるかどうかを選択できます。

バージョン履歴

バージョン変更点
v14.1.0cacheHandlerに名称変更され、安定版になりました。
v13.4.0revalidateTagincrementalCacheHandlerPathサポート。
v13.4.0スタンドアロン出力のincrementalCacheHandlerPathサポート。
v12.2.0試験的なincrementalCacheHandlerPathが追加されました。