Menu

カスタム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.0incrementalCacheHandlerPathrevalidateTagのサポートを追加。
導入時期:v13.4.0incrementalCacheHandlerPathでスタンドアロン出力のサポートを追加。
導入時期:v12.2.0実験的なincrementalCacheHandlerPathが追加されました。