Menu

カスタム 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, // デフォルトのインメモリキャッシングを無効化
}

カスタムキャッシュハンドラーの例を確認し、実装について詳しく学びましょう。

APIリファレンス

キャッシュハンドラーは、次のメソッドを実装できます:getsetrevalidateTag

get()

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

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

set()

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

Promise<void>を返します。

revalidateTag()

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

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

補足:

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

バージョン履歴

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