Menu

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

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

APIリファレンス

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

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.0revalidateTag向けのincrementalCacheHandlerPath対応。
v13.4.0スタンドアロン出力向けのincrementalCacheHandlerPath対応。
v12.2.0試験的なincrementalCacheHandlerPathが追加されました。