Custom Next.js Cache Handler
You can configure the Next.js cache location if you want to persist cached pages and data to durable storage, or share the cache across multiple containers or instances of your Next.js application.
Good to know: The
cacheHandler(singular) configuration is specifically used by Next.js for server cache operations such as storing and revalidating ISR and route handler responses. It isnot used by'use cache'directives. For'use cache'directives, usecacheHandlers(plural) instead.
module.exports= { cacheHandler:require.resolve('./cache-handler.js'), cacheMaxMemorySize:0,// disable default in-memory caching}View an example of acustom cache handler and learn more about the implementation.
API Reference
The cache handler can implement the following methods:get,set,revalidateTag, andresetRequestCache.
get()
| Parameter | Type | Description |
|---|---|---|
key | string | The key to the cached value. |
Returns the cached value ornull if not found.
set()
| Parameter | Type | Description |
|---|---|---|
key | string | The key to store the data under. |
data | Data ornull | The data to be cached. |
ctx | { tags: [] } | The cache tags provided. |
ReturnsPromise<void>.
revalidateTag()
| Parameter | Type | Description |
|---|---|---|
tag | string orstring[] | The cache tags to revalidate. |
ReturnsPromise<void>. Learn more aboutrevalidating data or therevalidateTag() function.
resetRequestCache()
This method resets the temporary in-memory cache for a single request before the next request.
Returnsvoid.
Good to know:
revalidatePathis a convenience layer on top of cache tags. CallingrevalidatePathwill call yourrevalidateTagfunction, which you can then choose if you want to tag cache keys based on the path.
Platform Support
| Deployment Option | Supported |
|---|---|
| Node.js server | Yes |
| Docker container | Yes |
| Static export | No |
| Adapters | Platform-specific |
Learn how toconfigure ISR when self-hosting Next.js.
Version History
| Version | Changes |
|---|---|
v14.1.0 | Renamed tocacheHandler and became stable. |
v13.4.0 | incrementalCacheHandlerPath support forrevalidateTag. |
v13.4.0 | incrementalCacheHandlerPath support for standalone output. |
v12.2.0 | ExperimentalincrementalCacheHandlerPath added. |
Was this helpful?