メインコンテンツまでスキップ

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

ページのキャッシュと再検証(Incremental Static Regenerationを使用)では、同じ共有キャッシュを使用します。 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, // デフォルトのメモリ内キャッシュを無効にします
}

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

APIリファレンス

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

get()

パラメーター説明
keystringキャッシュされている値のキーです

キャッシュされた値を返します。見つからなければ null を返します。

set()

パラメーター説明
keystringデータを保存するキーです
dataData または nullキャッシュするデータです
ctx{ tags: [] }提供されるキャッシュタグです

Promise<void> を返します。

revalidateTag()

パラメーター説明
tagstring or string[]再検証するキャッシュタグです

Promise<void> を返します。データの再検証について詳しく知るか、revalidateTag() 関数について理解を深めてください。

Good to know:

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

バージョン履歴

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