自定义 Next.js 缓存处理程序
在 Next.js 中,页面和应用路由的 默认缓存处理程序 使用文件系统缓存。这不需要配置,但是,你可以使用 next.config.js
中的 cacheHandler
字段自定义缓存处理程序。
¥In Next.js, the default cache handler for the Pages and App Router uses the filesystem cache. This requires no configuration, however, you can customize the cache handler by using the cacheHandler
field in next.config.js
.
module.exports = {
cacheHandler: require.resolve('./cache-handler.js'),
cacheMaxMemorySize: 0, // disable default in-memory caching
}
查看 自定义缓存处理程序 的示例并了解有关实现的更多信息。
¥View an example of a custom cache handler and learn more about implementation.
API 参考
¥API Reference
缓存处理程序可以实现以下方法:get
、set
和 revalidateTag
。
¥The cache handler can implement the following methods: get
, set
, and revalidateTag
.
get()
范围 | 类型 | 描述 |
---|---|---|
key | string | 缓存值的键。 |
返回缓存的值,如果未找到则返回 null
。
¥Returns the cached value or null
if not found.
set()
范围 | 类型 | 描述 |
---|---|---|
key | string | 存储数据的键。 |
data | 数据或 null | 要缓存的数据。 |
ctx | { tags: [] } | 提供的缓存标签。 |
返回 Promise<void>
。
¥Returns Promise<void>
.
revalidateTag()
范围 | 类型 | 描述 |
---|---|---|
tag | string | 要重新验证的缓存标记。 |
返回 Promise<void>
。了解有关 重新验证数据 或 revalidateTag()
函数的更多信息。
¥Returns Promise<void>
. Learn more about revalidating data or the revalidateTag()
function.
很高兴知道:
¥Good to know:
-
revalidatePath
是缓存标签之上的便利层。调用revalidatePath
将调用revalidateTag
函数,然后你可以选择是否要根据路径标记缓存键。¥
revalidatePath
is a convenience layer on top of cache tags. CallingrevalidatePath
will call yourrevalidateTag
function, which you can then choose if you want to tag cache keys based on the path.
版本历史
¥Version History
版本 | 变化 |
---|---|
v14.1.0 | 重命名为 cacheHandler 稳定。 |
v13.4.0 | incrementalCacheHandlerPath (实验性)支持 revalidateTag 。 |
v13.4.0 | incrementalCacheHandlerPath (实验)支持独立输出。 |
v12.2.0 | 添加了 incrementalCacheHandlerPath (实验性)。 |