文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
缓存 Cache
Nitro 提供了一个建立在[存储层]之上的强大的缓存系统。
它将数据存储在“缓存”挂载点中。
要覆盖生产存储,请使用 storage 选项设置 cache 挂载点:
nitro.config.tsimport { defineNitroConfig } from "nitropack/config";
export default defineNitroConfig({
storage: {
cache: {
driver: 'redis',
/* redis connector options */
}
}
})
nuxt.config.tsexport default defineNuxtConfig({
nitro: {
storage: {
cache: {
driver: 'redis',
/* redis connector options */
}
}
}
})
要在开发中覆盖 cache
挂载点,请使用 devStorage
选项添加 cache
挂载点。
Usage
Router Handler// Cache an API handler
export default cachedEventHandler((event) => {
// My event handler
}, options);
Functionconst myFn = cachedFunction(() => {
// My function
}, options);
Examples
如果你来自 Nuxt,下面的所有示例都应该放在 server/
目录中。
Route Handler
此功能使您能够直接在主配置文件中添加基于 glob 模式的缓存路由。
此功能仍处于试验阶段,可能会在未来发展。
使用 stale-while-revalidate 行为将所有博客路由缓存 1 小时:
nitro.config.tsimport { defineNitroConfig } from "nitropack/config";
export default defineNitroConfig({
routeRules: {
"/blog/**": {
swr: 60 * 60,
// or
cache: {
maxAge: 60 * 60
}
},
},
});
nuxt.config.tsexport default defineNuxtConfig({
routeRules: {
"/blog/**": {
swr: 60 * 60,
// or
cache: {
maxAge: 60 * 60
}
},
}
});
如果我们想使用自定义存储挂载点,我们可以使用 base
选项。 让我们将博客路由的缓存结果存储在 Redis 存储中以用于生产:
import { defineNitroConfig } from "nitropack/config";
export default defineNitroConfig({
storage: {
redis: {
driver: "redis",
url: "redis://localhost:6379",
},
},
routeRules: {
"/blog/**": {
swr: 60 * 60,
cache: {
base: "redis",
},
},
},
});
nuxt.config.tsexport default defineNuxtConfig({
nitro: {
storage: {
redis: {
driver: "redis",
url: "redis://localhost:6379",
},
},
},
routeRules: {
"/blog/**": {
swr: 60 * 60,
cache: {
base: "redis",
},
},
},
});
Options
cachedEventHandler
和 cachedFunction
函数接受以下选项:
name
: Handler name.- Type:
String
- 默认:如果未提供,则从函数名称猜测,否则回退到 _ 。
- Type:
group
: 缓存名称的一部分。 用于组织缓存存储。- Type:
String
- 默认:
'nitro/handlers'
用于处理程序,'nitro/functions'
用于函数。
- Type:
getKey
: 接受与函数相同的参数并返回缓存键 (String
) 的函数。- Type:
Function
- 默认:如果未提供,将使用内置哈希函数。
- Type:
integrity
: 更改时使缓存无效的值。- Type:
String
- 默认:从函数代码计算,在开发中用于在函数代码更改时使缓存失效。
- Type:
maxAge
: 缓存有效的最长期限(以秒为单位)。- Type:
Number
- 默认:
1
(第二个)。
- Type:
staleMaxAge
: 陈旧缓存有效的最长期限(以秒为单位)。 如果设置为“-1”,旧值仍将发送到客户端,同时在后台更新缓存。- Type:
Number
- 默认:
0
(禁用)。
- Type:
swr
: Enablestale-while-revalidate
behavior.- 默认:
真实
- 默认:
base
: 用于缓存的存储安装点的名称。- 默认:
缓存
。
- 默认:
shouldInvalidateCache
: 返回“布尔值”以使当前缓存无效并创建新缓存的函数。- Type:
Function
- Type:
shouldBypassCache
: 返回布尔值以绕过当前缓存而不会使现有条目无效的函数。- Type:
Function
- Type:
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论