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

Custom Next.js Cache Handler

Next.js では、Pages Router及びApp Routerのデフォルトのキャッシュハンドラはファイルシステムキャッシュを使用します。これには設定は必要ありませんが、next.config.jscacheHandlerフィールドを使用してキャッシュハンドラをカスタマイズすることができます。

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

カスタムキャッシュハンドラの例を確認し、実装について詳しく学習します。

API リファレンス

キャッシュ・ハンドラは、getsetrevalidateTagの各メソッドを実装できます。

get()

引数説明
keystringキャッシュされた値のキー

キャッシュされた値、なければnullを返します。

set()

引数説明
keystringデータを保存する際のキー
dataData or nullキャッシュされるデータ
ctx{ tags: [] }提供されたキャッシュタグ

Promise<void>を返します。

revalidateTag()

引数説明
tagstring再検証するキャッシュタグ

Promise<void>を返します。 データの再検証revalidateTag()関数についてはそれぞれのドキュメントを参照してください。

Good to know:

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

バージョン履歴

VersionChange
v14.1.0名前を変更したcacheHandlerが安定版になりました。
v13.4.0incrementalCacheHandlerPath(実験的)はrevalidateTagをサポートしています。
v13.4.0incrementalCacheHandlerPath(実験的)はスタンドアロンの出力をサポートしています。
v12.2.0incrementalCacheHandlerPath(実験的)が追加されました。