カスタム Next.js キャッシュハンドラー
ページのキャッシュと再検証(増分静的再生成を使用)は、同じ共有キャッシュを使用します。Vercelにデプロイする場合、ISRキャッシュは自動的に耐久性のあるストレージに保持されます。
セルフホスティングの場合、ISRキャッシュは Next.js サーバーのファイルシステム(ディスク)に保存されます。これはPages RouterとApp Routerの両方を使用するセルフホスティング時に自動的に機能します。
キャッシュされたページとデータを耐久性のあるストレージに保持したり、Next.js アプリケーションの複数のコンテナやインスタンス間でキャッシュを共有したい場合は、Next.js キャッシュの場所を設定できます。
カスタムキャッシュハンドラーの例を確認し、実装について詳しく学びましょう。
APIリファレンス
キャッシュハンドラーは、次のメソッドを実装できます:get
、set
、revalidateTag
。
get()
パラメーター | 型 | 説明 |
---|---|---|
key | string | キャッシュされた値のキー。 |
キャッシュされた値を返します。見つからない場合はnull
を返します。
set()
パラメーター | 型 | 説明 |
---|---|---|
key | string | データを保存するキー。 |
data | データまたはnull | キャッシュするデータ。 |
ctx | { tags: [] } | 提供されたキャッシュタグ。 |
Promise<void>
を返します。
revalidateTag()
パラメーター | 型 | 説明 |
---|---|---|
tag | string または string[] | 再検証するキャッシュタグ。 |
Promise<void>
を返します。データの再検証またはrevalidateTag()
関数について詳しく学びましょう。
補足:
revalidatePath
はキャッシュタグの便利なレイヤーです。revalidatePath
を呼び出すとrevalidateTag
関数が呼び出され、パスに基づいてキャッシュキーにタグ付けするかどうかを選択できます。
バージョン履歴
バージョン | 変更点 |
---|---|
v14.1.0 | cacheHandler に改名され、安定版となりました。 |
v13.4.0 | revalidateTag に対するincrementalCacheHandlerPath のサポート。 |
v13.4.0 | スタンドアロン出力に対するincrementalCacheHandlerPath のサポート。 |
v12.2.0 | 実験的なincrementalCacheHandlerPath が追加されました。 |