自定义 Next.js 缓存处理器
在 Next.js 中,默认缓存处理器 用于 Pages 和 App Router,使用文件系统缓存。这无需任何配置,但您可以通过在 next.config.js 中使用 cacheHandler 字段来自定义缓存处理器。
module.exports = {
cacheHandler: require.resolve('./cache-handler.js'),
cacheMaxMemorySize: 0, // 禁用默认的内存缓存
}查看 自定义缓存处理器 的示例并了解更多实现细节。
API 参考
缓存处理器可以实现以下方法:get、set 和 revalidateTag。
get()
| 参数 | 类型 | 描述 |
|---|---|---|
key | string | 缓存值的键。 |
返回缓存的值,如果未找到则返回 null。
set()
| 参数 | 类型 | 描述 |
|---|---|---|
key | string | 存储数据的键。 |
data | Data 或 null | 要缓存的数据。 |
ctx | { tags: [] } | 提供的缓存标签。 |
返回 Promise<void>。
revalidateTag()
| 参数 | 类型 | 描述 |
|---|---|---|
tag | string | 要重新验证的缓存标签。 |
返回 Promise<void>。了解更多关于 重新验证数据 或 revalidateTag() 函数的信息。
须知:
revalidatePath是缓存标签之上的便利层。调用revalidatePath会调用您的revalidateTag函数,然后您可以选择是否根据路径标记缓存键。
版本历史
| 版本 | 变更 |
|---|---|
v14.1.0 | 重命名为 cacheHandler 并稳定化。 |
v13.4.0 | incrementalCacheHandlerPath (实验性) 支持 revalidateTag。 |
v13.4.0 | incrementalCacheHandlerPath (实验性) 支持独立输出。 |
v12.2.0 | 添加 incrementalCacheHandlerPath (实验性)。 |