跳到内容

自定义 Next.js 缓存处理程序

您可以配置 Next.js 缓存位置,以便将缓存的页面和数据持久化到持久存储中,或在 Next.js 应用程序的多个容器或实例之间共享缓存。

须知cacheHandler 配置专用于 Next.js 的服务器缓存操作,例如存储和重新验证 ISR 和路由处理程序响应。它不被 '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 参考

缓存处理程序可以实现以下方法:getsetrevalidateTagresetRequestCache

get()

参数类型描述
keystring缓存值的键。

返回缓存值,如果未找到则返回 null

set()

参数类型描述
keystring用于存储数据的键。
data数据或 null要缓存的数据。
ctx{ tags: [] }提供的缓存标签。

返回 Promise<void>

revalidateTag()

参数类型描述
tagstringstring[]要重新验证的缓存标签。

返回 Promise<void>。了解更多关于重新验证数据revalidateTag()函数的信息。

resetRequestCache()

此方法在下一个请求之前重置单个请求的临时内存缓存。

返回 void

须知

  • revalidatePath 是缓存标签的便利层。调用 revalidatePath 将调用您的 revalidateTag 函数,然后您可以选择是否根据路径标记缓存键。

平台支持

部署选项支持
Node.js 服务器
Docker 容器
静态导出
适配器平台特定

了解如何在自托管 Next.js 时配置 ISR

版本历史

版本更改
v14.1.0重命名为 cacheHandler 并变得稳定。
v13.4.0incrementalCacheHandlerPath 支持 revalidateTag
v13.4.0incrementalCacheHandlerPath 支持独立输出。
v12.2.0添加了实验性的 incrementalCacheHandlerPath