跳到主要内容

自定义 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 容器
静态导出
适配器平台特定

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

版本历史

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