カスタムNext.jsキャッシュハンドラ
ページのキャッシングと再検証 (インクリメンタル静的再生成を使用) は、同じ共有キャッシュを使用します。Vercelにデプロイする場合、ISRキャッシュは自動的に永続ストレージに保存されます。
セルフホスティングの場合、ISRキャッシュはNext.jsサーバーのファイルシステム (ディスク上) に保存されます。これは、Pages Routerと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 | string | キャッシュされた値のキー。 |
キャッシュされた値、または見つからない場合はnull
を返します。
set()
パラメーター | 型 | 説明 |
---|---|---|
key | string | データを保存するキー。 |
data | 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 が追加されました。 |
この情報は役に立ちましたか?