コンテンツにスキップ

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

キャッシュされたページやデータを耐久性のあるストレージに永続化したい場合、または Next.js アプリケーションの複数のコンテナやインスタンス間でキャッシュを共有したい場合に、Next.js のキャッシュ設定を構成できます。

注意: cacheHandler設定は、ISRやルートハンドラーの応答の保存や再検証などのサーバーキャッシュ操作にNext.jsによって特別に使用されます。これは、それぞれ独自のキャッシュを独立して管理する 'use cache''use cache: remote''use cache: private' では使用されません。

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

カスタムキャッシュハンドラーの例を表示し、実装についてさらに詳しく学んでください。

APIリファレンス

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

get()

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

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

set()

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

Promise<void> を返します。

revalidateTag()

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

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

resetRequestCache()

このメソッドは、次のリクエストの前に、単一リクエストの一時的なインメモリキャッシュをリセットします。

void を返します。

知っておくと良いこと

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

プラットフォームのサポート

デプロイメントオプションサポート
Node.jsサーバーはい
Dockerコンテナはい
静的エクスポートいいえ
アダプタープラットフォーム固有

Next.js をセルフホスティングする際に ISR を構成する方法については、こちらをご覧ください。

バージョン履歴

バージョン変更履歴
v14.1.0cacheHandler にリネームされ、安定版になりました。
v13.4.0incrementalCacheHandlerPathrevalidateTag をサポート。
v13.4.0incrementalCacheHandlerPath でスタンドアロン出力をサポート。
v12.2.0実験的な incrementalCacheHandlerPath が追加されました。