カスタム 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 リファレンス
キャッシュハンドラーは、次のメソッドを実装できます: get
、set
、および revalidateTag
。
get()
パラメーター | 型 | 説明 |
---|---|---|
key | 文字列 | キャッシュされた値のキー。 |
キャッシュされた値を返すか、見つからない場合は null
を返します。
set()
パラメーター | 型 | 説明 |
---|---|---|
key | 文字列 | データを保存するキー。 |
data | データまたは null | キャッシュされるデータ。 |
ctx | { tags: [] } | 提供されたキャッシュタグ。 |
Promise<void>
を返します。
revalidateTag()
パラメーター | 型 | 説明 |
---|---|---|
tag | 文字列 または 文字列[] | 再検証するキャッシュタグ。 |
Promise<void>
を返します。データの再検証または revalidateTag()
関数について詳しく学んでください。
知っておくと良いこと
revalidatePath
は、キャッシュタグの便利なレイヤーです。revalidatePath
を呼び出すと、revalidateTag
関数が呼び出され、パスに基づいてキャッシュキーにタグを付けるかどうかを選択できます。
バージョン履歴
バージョン | 変更点 |
---|---|
v14.1.0 | cacheHandler に名前が変更され、安定版になりました。 |
v13.4.0 | revalidateTag の incrementalCacheHandlerPath のサポート。 |
v13.4.0 | スタンドアロン出力の incrementalCacheHandlerPath のサポート。 |
v12.2.0 | 実験的な incrementalCacheHandlerPath が追加されました。 |
お役に立ちましたか?