npm 包 @lennon/ttl-cache 使用教程

阅读时长 5 分钟读完

简介

@lennon/ttl-cache 是一个基于 Node.js 的内存缓存模块,支持设置过期时间,能够根据缓存键自动销毁过期的缓存,支持事件监听和自定义序列化函数。

安装

使用

初始化

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

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

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

缓存数据

获取缓存

检查缓存是否存在

删除缓存

清空缓存

事件监听

@lennon/ttl-cache 支持以下事件:

  • set(key, value, ttl):当缓存被设置时触发
  • get(key, value):当从缓存获取值时触发
  • expire(key, value):当缓存过期并被删除时触发
  • delete(key, value):从缓存删除数据时发生

如下示例代码:

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

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

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

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

自定义序列化函数

默认情况下,@lennon/ttl-cache 会使用 JSON.parseJSON.stringify 进行缓存数据的序列化和反序列化。但如果需要使用自定义的序列化函数,可以在初始化时将其传入 serializerdeserializer 参数中:

案例

@lennon/ttl-cache 可以应用于对访问量大的 API 接口进行缓存。以请求 GitHub API 的 GET /users/:username 为例:

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

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

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

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

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

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

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

上述代码会缓存从 GitHub API 返回的用户数据一小时,在用户多次请求同一个用户名时可以有效减少 API 请求次数,提高系统性能。

总结

@lennon/ttl-cache 是一个简单易用、功能强大的 Node.js 内存缓存模块,支持设置过期时间、事件监听和自定义序列化函数,在实际生产环境中可以用于各种数据缓存的场景。

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

纠错
反馈