您可以配置 Next.js 的缓存位置,以便将缓存的页面和数据持久化到持久存储中,或者在 Next.js 应用程序的多个容器或实例之间共享缓存。
须知:
cacheHandler(单数)配置专门用于 Next.js 的服务器缓存操作,例如存储和重新验证 ISR 和路由处理器响应。它不用于'use cache'指令。对于'use cache'指令,请改用cacheHandlers(复数)。
module.exports = {
cacheHandler: require.resolve('./cache-handler.js'),
cacheMaxMemorySize: 0, // disable default in-memory caching
}查看 自定义缓存处理程序 的示例,并了解更多关于其实现的信息。
缓存处理程序可以实现以下方法:get、set、revalidateTag 和 resetRequestCache。
get()| 参数 | 类型 | 描述 |
|---|---|---|
key | string | 缓存值的键。 |
返回缓存值,如果未找到则返回 null。
set()| 参数 | 类型 | 描述 |
|---|---|---|
key | string | 存储数据的键。 |
data | Data 或 null | 要缓存的数据。 |
ctx | { tags: [] } | 提供的缓存标签。 |
返回 Promise<void>。
revalidateTag()| 参数 | 类型 | 描述 |
|---|---|---|
tag | string 或 string[] | 要重新验证的缓存标签。 |
返回 Promise<void>。了解更多关于 重新验证数据 或 revalidateTag() 函数的信息。
resetRequestCache()此方法在下一个请求之前,为单个请求重置临时内存缓存。
返回 void。
须知:
revalidatePath 是在缓存标签之上的一个便利层。调用 revalidatePath 将会调用您的 revalidateTag 函数,然后您可以选择是否根据路径标记缓存键。| 部署选项 | 支持 |
|---|---|
| Node.js server | 是 |
| Docker container | 是 |
| Static export | 否 |
| Adapters | 平台相关 |
了解如何在自托管 Next.js 时 配置 ISR。
| 版本 | 更改 |
|---|---|
v14.1.0 | 更名为 cacheHandler 并变得稳定。 |
v13.4.0 | 支持 revalidateTag 的 incrementalCacheHandlerPath。 |
v13.4.0 | 支持独立输出的 incrementalCacheHandlerPath。 |
v12.2.0 | 添加了实验性的 incrementalCacheHandlerPath。 |