npm 包 apollo-server-caching 使用教程

阅读时长 5 分钟读完

背景简介

随着前端项目的不断增加,越来越多的公司和开发者开始使用 GraphQL 技术解决 RESTful API 出现的一些问题。GraphQL 有着优秀的查询语言,可以快速高效的完成数据请求,而且有着极为灵活的数据获取方式。

使用 GraphQL,我们需要一个专门执行 GraphQL 查询的服务器。市面上有很多 GraphQL 服务端的工具,其中最流行的之一是 Apollo Server。当我们每次向后端服务器发送一个查询时,Apollo server 会从我们的服务器端接收请求,执行这个请求并返回。

但是,当服务器端处理数据的时候会涉及到缓存问题,缓存可以快速提高网络请求的效率,缓存机制也是一个高可用,高性能系统中必不可少的处理方法。

针对上述问题,Apollo Server 也提供了一套缓存机制的 npm 包,即 apollo-server-caching。

apollo-server-caching 使用教程

安装

你可以通过 npm 安装 apollo-server-caching:

使用

在项目的 Apollo Server 代码中,配置使用 apollo-server-caching:

如果你要在你的自定义缓存实现中使用,你需要从 InMemoryLRUCache 中扩展支持的接口:

-- -------------------- ---- -------
------ - ------------ - ---- ----------------
------ - ------------- - ---- ------------------------

----- ------- ---------- --------------------- -
  -- --- ----
-

----- ------ - --- --------------
  -- --- -----
  ------ --- ----------
---

配置

InMemoryLRUCache

你可以通过配置,为该缓存机制设置缓存大小、资源清理周期等信息,在执行程序时进行配置。例如:

-- -------------------- ---- -------
------ - ------------ - ---- ----------------
------ - ---------------- - ---- ------------------------

----- ------ - --- --------------
  ------ --- ------------------
    -------- --------- -- -- --
    --------------- ----- -- -----------
  ---
---

sizeCalculator 是一个函数,你可以通过该函数定义缓存中每个对象所占用的空间。

RedisCache 和 MemcachedCache

Apollo Server 还提供了 RedisCache 和 MemcachedCache,分别使用 Redis 和 Memcached 作为后端进行缓存。使用缓存时,可以像下面这样为 RedisCache 和 MemcachedCache 进行配置:

-- -------------------- ---- -------
------ - ------------ - ---- ----------------
------ - ---------- - ---- ----------------------------

----- ------ - --- --------------
  ------ --- ------------
    -- ----- ---
    ----- ------------
    ----- -----
  ---
---
-- -------------------- ---- -------
------ - ------------ - ---- ----------------
------ - -------------- - ---- --------------------------------

----- ------ - --- --------------
  ------ --- ----------------
    -- --------- ---
    ------ --------------------
  ---
---

代码示例

使用缓存的 Apollo Server 实例代码如下:

-- -------------------- ---- -------
------ - ------------- --- - ---- ----------------
------ - ---------------- - ---- ------------------------

----- -------- - ----
  ---- ----- -
    ------ ------
  -
--

----- --------- - -
  ------ -
    ------ ----- -- -- -
      -- ---------
      ------ --------
    --
  --
--

----- ------ - --- --------------
  ---------
  ----------
  ------ --- -------------------
---

----------------------- --- -- -- -
  --------------- ------ ----- -- ---------
---

总结

本文主要讲解了 apollo-server-caching 的使用教程,包括了如何安装、使用、以及配置。通过实际代码示例,你可以快速掌握 apollo-server-caching 在 Apollo Server 项目中的使用方法。

缓存是提高数据查询效率的重要手段,尤其对于大规模的应用程序,缓存更是必不可少的优化手段。Apollo Server 提供的缓存机制,能够快速提高 GraphQL 查询的效率,同时提高应用的可用性。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/72736

纠错
反馈