Menu

自定义 Next.js 缓存处理器

在 Next.js 中,页面路由器和应用路由器的默认缓存处理器使用文件系统缓存。这不需要配置,但你可以通过在 next.config.js 中使用 cacheHandler 字段来自定义缓存处理器。

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

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

API 参考

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

get()

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

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

set()

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

返回 Promise<void>

revalidateTag()

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

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

值得注意的是:

  • revalidatePath 是基于缓存标签的便捷层。调用 revalidatePath 将调用你的 revalidateTag 函数,你可以选择是否根据路径标记缓存键。

版本历史

版本变更
v14.1.0cacheHandler 已稳定。
v13.4.0incrementalCacheHandlerPath(实验性)支持 revalidateTag
v13.4.0incrementalCacheHandlerPath(实验性)支持独立输出。
v12.2.0incrementalCacheHandlerPath(实验性)被添加。