使用catbox和hapi js进行内存缓存

时间:2017-04-19 14:54:01

标签: node.js caching hapijs

我正在使用catbox处理hapijs中的内存缓存,其中在这些场景中应该向DB请求获取所有行

  • 请求一个不在缓存的db_result行中的密钥,然后调用DB并更新缓存并从缓存对象返回值
  • 请求缓存的db_result行中的密钥返回密钥的值

例如:如果缓存db_result[{ id: 12, name: 'app4' },{ id: 21, name: 'app5' }]key12,则不应调用DB,否则如果密钥为13则应该进行数据库调用,db_result应该更新。

是否有任何示例可以查看如何配置此功能。我是否遵循准则?

请注意,我们在hapi之上使用胶水进行服务器配置。

1 个答案:

答案 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';
  }
});