自定义 Next.js 缓存处理器
如果您希望将缓存页面和数据持久化到持久存储中,或在 Next.js 应用程序的多个容器或实例之间共享缓存,可以配置 Next.js 的缓存位置。
查看 自定义缓存处理器 的示例并了解更多实现细节。
API 参考
缓存处理器可以实现以下方法:get
、set
、revalidateTag
和 resetRequestCache
。
get()
参数 | 类型 | 描述 |
---|---|---|
key | string | 缓存值的键名。 |
返回缓存值,如果未找到则返回 null
。
set()
参数 | 类型 | 描述 |
---|---|---|
key | string | 存储数据的键名。 |
data | Data 或 null | 要缓存的数据。 |
ctx | { tags: [] } | 提供的缓存标签。 |
返回 Promise<void>
。
revalidateTag()
参数 | 类型 | 描述 |
---|---|---|
tag | string 或 string[] | 需要重新验证的缓存标签。 |
返回 Promise<void>
。了解更多关于 重新验证数据 或 revalidateTag()
函数的信息。
resetRequestCache()
此方法在下一个请求之前重置单个请求的临时内存缓存。
返回 void
。
须知:
revalidatePath
是缓存标签之上的便捷层。调用revalidatePath
会调用您的revalidateTag
函数,然后您可以选择是否基于路径标记缓存键。
平台支持
部署选项 | 支持情况 |
---|---|
Node.js 服务器 | 是 |
Docker 容器 | 是 |
静态导出 | 否 |
适配器 | 平台相关 |
了解在自托管 Next.js 时如何 配置 ISR。
版本历史
版本 | 变更 |
---|---|
v14.1.0 | 重命名为 cacheHandler 并成为稳定功能。 |
v13.4.0 | incrementalCacheHandlerPath 支持 revalidateTag 。 |
v13.4.0 | incrementalCacheHandlerPath 支持独立输出。 |
v12.2.0 | 实验性添加 incrementalCacheHandlerPath 。 |