自定义 Next.js 缓存处理器

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

next.config.js
module.exports = {
  cacheHandler: require.resolve('./cache-handler.js'),
  cacheMaxMemorySize: 0, // 禁用默认的内存缓存
}

查看 自定义缓存处理器 的示例并了解更多实现细节。

API 参考

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

get()

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

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

set()

参数类型描述
keystring存储数据的键名。
dataData 或 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

On this page