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

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

next.config.js
module.exports = {
  cacheHandler: require.resolve('./cache-handler.js'),
  cacheMaxMemorySize: 0, // デフォルトのメモリ内キャッシュを無効化
}

カスタムキャッシュハンドラの例を参照し、実装の詳細について学ぶことができます。

API リファレンス

キャッシュハンドラは以下のメソッドを実装できます: getsetrevalidateTagresetRequestCache

get()

パラメータ説明
keystringキャッシュ値へのキー

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

set()

パラメータ説明
keystringデータを保存するキー
dataData または 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.0revalidateTag のための incrementalCacheHandlerPath サポート
v13.4.0スタンドアロン出力のための incrementalCacheHandlerPath サポート
v12.2.0実験的な incrementalCacheHandlerPath が追加された

On this page