npm 包 apollo-server-caching 使用教程

背景简介

随着前端项目的不断增加,越来越多的公司和开发者开始使用 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


猜你喜欢

  • npm 包 format-stack 使用教程

    在前端开发中,调试是常常需要进行的一项工作。在调试过程中,我们经常会遇到报错信息并需要查看堆栈信息,但有时候堆栈信息输出的格式不是很清晰,给开发调试带来了一定的困难。

    5 年前
  • npm 包 itape 使用教程

    前言 在日常的前端开发中,我们经常会使用 npm 包来像构建工具、自定义组件、第三方库等来加快我们的开发效率和做出更好的交互效果。但是,没有一款完美的 npm 包,所以选择适合自己的 npm 包就特别...

    5 年前
  • npm 包 unique-by 使用教程

    在前端开发中,我们经常需要对数组进行去重操作。而在实际开发中,有时候我们需要通过某个属性进行去重,即根据某个属性值进行去重,这时候就可以使用 npm 包 unique-by。

    5 年前
  • npm 包 peer-info 使用教程

    前言 在使用 Node.js 开发前端应用的过程中,我们经常会用到 npm 包来辅助开发。其中,peer-info 这个 npm 包用于管理自己作为 P2P 网络节点时连接的其他节点。

    5 年前
  • npm 包 ipfs-unixfs 使用教程

    简介 ipfs-unixfs 是一个 Node.js 包,它提供了一种在 IPFS 上存储和检索文件的方式。它使用 UnixFS 数据结构作为文件的表示,并使用 DAG(有向无环图)作为存储格式。

    5 年前
  • npm包asmcrypto.js使用教程

    前言 随着互联网的发展,越来越多的网站对前端加密算法的要求越来越高。在这种情况下,asmcrypto.js作为一个强大的加密工具库,受到了越来越多开发者的喜爱。 asmcrypto.js是一个可以通过...

    5 年前
  • npm 包 http-serve 使用教程

    前言 在前端开发中,为了方便本地调试和开发,我们经常需要在本地启动一个服务器,以供浏览器访问。而 http-serve 就是一个方便好用的 http 服务器工具。 http-serve 提供了一种简单...

    5 年前
  • npm 包 eslint-config-halo 使用教程

    在前端开发中,使用 eslint 工具可以规范代码风格,提高代码质量。而 eslint-config-halo 是一个支持 HALO 前端规范的 eslint 配置,可以帮助开发者在代码编写过程中自动...

    5 年前
  • npm 包 iso-random-stream 使用教程

    随机数生成是计算机科学领域中的一项基本操作,它在数据加密、模拟和科学计算等领域中都发挥着重要作用。npm 包 iso-random-stream 就是一个能够生成随机数的 Node.js 模块,它提供...

    5 年前
  • npm 包 ursa-optional 使用教程

    什么是 ursa-optional? ursa-optional 是一个 Node.js 的 npm 包,是 ursa 的一个可选依赖。ursa 是一个加密库,支持 RSA,DSA,SHA 等多种加密...

    5 年前
  • npm 包 protons 使用教程

    在前端开发中,我们经常需要处理 JSON 数据,从服务器请求到的数据需要进行解析和转化,同时在开发过程中也需要定义一些数据结构。这时,protons 就是一个很便捷的 npm 包可供使用。

    5 年前
  • npm 包 pem-jwk 使用教程

    在前端开发中,我们常常需要处理加密相关的操作,比如生成和解析数字证书、签名和验证等。在这些操作中,非对称加密算法是一个常见的选择,而 PEM 和 JWK 是常用的密钥格式。

    5 年前
  • npm 包 libp2p-crypto 使用教程

    简介 libp2p-crypto 是一个 npm 包,用于提供加密,解密和签名功能,可用于 p2p 网络应用程序中。本教程旨在帮助前端开发人员深入了解 libp2p-crypto 的使用方法和技术细节...

    5 年前
  • npm 包 blakejs 使用教程

    简介 npm(Node Package Manager)是 Node.js 的包管理器,可以方便地共享、重复使用代码和工具。blakejs 是一个基于 Blake 2 安全散列函数的 JavaScri...

    5 年前
  • npm 包 murmurhash3js-revisited 使用教程

    前言 对于前端开发来说,使用哈希算法是一项很常见的任务。哈希算法可以解决很多不同的问题,比如密码存储、数据摘要、唯一标识符生成、数据去重等等。而 MurmurHash 算法是比较常用的一种哈希算法。

    5 年前
  • npm 包 multihashing-async 使用教程

    哈希函数是在前端开发中不可或缺的一部分,能够加密和验证数据的完整性。Multihashing-async 是一个 npm 包,提供了一个异步的多哈希函数,能够同时支持多个哈希算法,如 SHA-1、SH...

    5 年前
  • npm 包 interface-ipfs-core 使用教程

    前言 IPFS,全称为 InterPlanetary File System,是一种去中心化的分布式存储协议。它可以实现对于任意大小、内容和类型的文件进行唯一定位。

    5 年前
  • npm 包 ipfs-http-client 使用教程

    IPFS(InterPlanetary File System)是一种分布式文件系统,它允许用户通过内容而不是位置来寻找、请求和分发数据。ipfs-http-client 是一个 npm 包,提供了一...

    5 年前
  • npm 包 go-platform 使用教程

    在前端开发中,提升开发效率和代码质量的一个有力工具就是使用各种第三方库和框架。而 npm 包则是其中最常用的一种。它们可以使用 npm 快速安装和更新,提供各种对应功能的 API 接口,让开发人员更专...

    5 年前
  • npm包 go-ipfs-dep使用教程

    什么是go-ipfs-dep go-ipfs-dep是一个npm包,它是go-ipfs项目的依赖包。go-ipfs是一个分布式文件系统,它使用peer-to-peer网络协议来提供高效、安全、可靠的文...

    5 年前

相关推荐

    暂无文章