Custom Next.js Cache Handler
Next.js では、Pages と App Router のdefault キャッシュハンドラーはファイルシステムの cache を使用します。これは設定が不要ですが、next.config.js
の cacheHandler
フィールドを使用してキャッシュハンドラーをカスタマイズすることができます。
next.config.js
module.exports = {
cacheHandler: require.resolve('./cache-handler.js'),
cacheMaxMemorySize: 0, // disable default in-memory caching
}
custom cache handlerの例を見て、実装について詳しく学びましょう。
API Reference
cache handler は以下の Method を実装できます:get
、set
、そしてrevalidateTag
。
get()
Parameter | Type | Description |
---|---|---|
key | string | キャッシュされた value への鍵。 |
キャッシュされた value を返すか、見つからない場合はnull
を返します。
set()
Parameter | Type | Description |
---|---|---|
key | string | データを保存するためのキー。 |
data | データまたはnull | キャッシュするデータ。 |
ctx | { tags: [] } | 提供された cache タグ。 |
Promise<void>
を返します。
revalidateTag()
Parameter | Type | Description |
---|---|---|
tag | string | cache タグを revalidate する。 |
Promise<void>
を返します。データの再検証やrevalidateTag()
関数について詳しく学びましょう。
Good to know:
revalidatePath
は cache タグの上に便利なレイヤーです。revalidatePath
を呼び出すと、revalidateTag
関数が呼び出され、それを使って、path に基づいて cache キーをタグ付けするかどうかを選択できます。
Version History
Version | Changes |
---|---|
v14.1.0 | 名前が変更された cacheHandler は安定しています。 |
v13.4.0 | 実験的に incrementalCacheHandlerPath は revalidateTag をサポートします。 |
v13.4.0 | incrementalCacheHandlerPath (実験的)はスタンドアロン出力をサポートします。 |
v12.2.0 | 実験的に incrementalCacheHandlerPath が追加されました。 |