コンテンツにスキップ

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

キャッシングと (インクリメンタル静的再生成を使用した) ページの再検証は、同じ共有キャッシュを使用します。Vercel にデプロイすると、ISR キャッシュは自動的に永続ストレージに保存されます。

自己ホスティングの場合、ISR キャッシュは Next.js サーバーのファイルシステム (ディスク上) に保存されます。これは、Pages と App Router の両方を使用して自己ホスティングする場合、自動的に機能します。

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

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

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

API リファレンス

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

get()

パラメーター説明
key文字列キャッシュされた値のキー。

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

set()

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

Promise<void> を返します。

revalidateTag()

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

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

知っておくと良いこと

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

バージョン履歴

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