Skip to main content

自定义 Next.js 缓存处理器

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

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

查看 自定义缓存处理器 的示例,并了解有关实现的更多信息。

API 参考​

缓存处理器可以实现以下方法:get、set、revalidateTag 和 resetRequestCache。

get()​

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

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

set()​

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

返回 Promise<void>。

revalidateTag()​

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

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

resetRequestCache()​

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

返回 void。

提示:

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

平台支持​

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

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

版本历史​

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