我正在使用catbox处理hapijs中的内存缓存,其中在这些场景中应该向DB请求获取所有行
例如:如果缓存db_result
为[{ id: 12, name: 'app4' },{ id: 21, name: 'app5' }]
且key
为12
,则不应调用DB,否则如果密钥为13
则应该进行数据库调用,db_result
应该更新。
是否有任何示例可以查看如何配置此功能。我是否遵循准则?
请注意,我们在hapi之上使用胶水进行服务器配置。
答案 0 :(得分:1)
有一个使用Cache-mongodb的示例on Github,但API与任何缓存提供程序都一致。
// wildcard route that responds all requests
// either with data from cache or default string
server.route({
method: 'GET',
path: '/{path*}',
handler: async (request, h) => {
const key = {
segment: 'examples',
id: 'myExample'
};
// get item from cache segment
const cached = await Cache.get(key);
if (cached) {
return `From cache: ${cached.item}`;
}
// fill cache with item
await Cache.set(key, { item: 'my example' }, 5000);
return 'my example';
}
});