カスタムNext.jsキャッシュハンドラー
キャッシュされたページやデータを耐久性のあるストレージに永続化したい場合、または Next.js アプリケーションの複数のコンテナやインスタンス間でキャッシュを共有したい場合に、Next.js のキャッシュ設定を構成できます。
注意:
cacheHandler設定は、ISRやルートハンドラーの応答の保存や再検証などのサーバーキャッシュ操作にNext.jsによって特別に使用されます。これは、それぞれ独自のキャッシュを独立して管理する'use cache'、'use cache: remote'、'use cache: private'では使用されません。
next.config.js
module.exports = {
cacheHandler: require.resolve('./cache-handler.js'),
cacheMaxMemorySize: 0, // disable default in-memory caching
}カスタムキャッシュハンドラーの例を表示し、実装についてさらに詳しく学んでください。
APIリファレンス
キャッシュハンドラーは、get、set、revalidateTag、resetRequestCache のメソッドを実装できます。
get()
| パラメータ | タイプ | 説明 |
|---|---|---|
key | string | キャッシュされた値のキー。 |
キャッシュされた値、または見つからない場合は null を返します。
set()
| パラメータ | タイプ | 説明 |
|---|---|---|
key | string | データを格納するキー。 |
data | データ、または null | キャッシュするデータ。 |
ctx | { tags: [] } | 提供されたキャッシュタグ。 |
Promise<void> を返します。
revalidateTag()
| パラメータ | タイプ | 説明 |
|---|---|---|
tag | string または string[] | 再検証するキャッシュタグ。 |
Promise<void> を返します。 データの再検証 または revalidateTag() 関数についてさらに詳しく学んでください。
resetRequestCache()
このメソッドは、次のリクエストの前に、単一リクエストの一時的なインメモリキャッシュをリセットします。
void を返します。
知っておくと良いこと
revalidatePathはキャッシュタグの便利なラッパーです。revalidatePathを呼び出すとrevalidateTag関数が呼び出され、パスに基づいてキャッシュキーにタグを付けるかどうかを選択できます。
プラットフォームのサポート
| デプロイメントオプション | サポート |
|---|---|
| Node.jsサーバー | はい |
| Dockerコンテナ | はい |
| 静的エクスポート | いいえ |
| アダプター | プラットフォーム固有 |
Next.js をセルフホスティングする際に ISR を構成する方法については、こちらをご覧ください。
バージョン履歴
| バージョン | 変更履歴 |
|---|---|
v14.1.0 | cacheHandler にリネームされ、安定版になりました。 |
v13.4.0 | incrementalCacheHandlerPath で revalidateTag をサポート。 |
v13.4.0 | incrementalCacheHandlerPath でスタンドアロン出力をサポート。 |
v12.2.0 | 実験的な incrementalCacheHandlerPath が追加されました。 |
役に立ちましたか?