npm 包 think-ioredis 使用教程

阅读时长 7 分钟读完

前言

在前后端分离的时代,前端工程师不再是胶水代码的写手,而是负责整个应用的开发维护,因此对于如何使用一些常用的工具也显得尤为重要。在日常开发中,我们经常会使用到 Redis 这个非常优秀的缓存中间件,而 ioredis 这个 Redis 客户端包也被广泛应用于日常开发中,think-ioredis 就是在 ioredis 包上的再次封装,旨在为开发者打造更为便捷的 Redis 缓存访问 API。

安装

想要使用 think-ioredis,我们需要先安装 redis-server ,因为这个包只是 Redis 客户端。在我们的应用中将 Redis 作为服务端长期稳定地运行是非常重要的,因为 Redis 缓存的目的恰恰是解决一些读高、写低的性能问题。具体安装步骤可以参考[官方文档][1]。

安装 think-ioredis 包

然后我们就可以使用 npm 安装 think-ioredis 包了:

简单使用示例

你熟练掌握了 ioredis 的基础使用方法后,相信你也能轻松上手 think-ioredis 了:

深度使用

构建 Redis 连接池

正如数据库连接池一样,Redis 连接池同样可以通过修改参数来优化性能。这也是 think-ioredis 这个包比裸用 ioredis 更为优秀的地方,它提供了非常方便的配置参数和 API。

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

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

API 参数详解:

  • host: [String] Redis 地址(默认值:'127.0.0.1')
  • port: [Number] Redis 端口(默认值:6379)
  • family: [Number] IP 如何被解析,IPv4 或 IPv6(默认值:4)
  • db: [Number] Redis 数据库的索引(默认值:0)
  • password: [String] Redis 数据库的密码(默认值:无)
  • enableReadyCheck: [Boolean] 当连接建立成功后发送一个 PING 命令以保证连接是否存活。如果启用,Redis 服务器无响应将会导致客户端断开连接(默认值:true)
  • keyPrefix: [String] 添加到每个 Redis key 前缀,以防止键名冲突(默认值:'')
  • retryStrategy: [Function] 当无法连接到 Redis 时,重试连接的策略函数(默认值:function(times) {return Math.min(times * 50, 2000);})
  • reconnectOnError: [Function] 当连接因为某些错误而断开时,是否继续重新连接。如果返回 False,则客户端不会尝试重新连接。如果返回一个 Error,则将其传递给回调。否则,“错误”仅是连接失败 event。(默认值:function() {return true;})
  • maxRetriesPerRequest: [Number] 无法连接 Redis 时,重试请求的最大次数(默认值:20)
  • autoResubscribe: [Boolean] 是否自动重新发布订阅事件(默认值:true)
  • lazyConnect: [Boolean] 在 Redis 具体操作之前是否在连接 Redis (默认值:false)
  • connectionName: [String] 设置连接名称

通过上述方式,我们可以构建出适合于每个应用各自的 Redis 连接池。

Session 存储

think-ioredis 还提供了面向 Cache 的 Session 存储方法:

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

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

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

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

Cache 存储

当然,think-ioredis 还是一个缓存库,我们可以很方便地通过它实现对象缓存:

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

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

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

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

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

总结

think-ioredis 这个 Redis 客户端包是 ioredis 的更高封装,它提供了常用 API 以及一些方便扩展的接口,方便我们在使用 Redis 缓存中间件的过程中做更多的定制化操作。虽然我们可以灵活地使用 ioredis 这个包操作 Redis,但是在一些常用场景下,think-ioredis 可以帮助我们自动化一些低级事件的处理,降低使用 ioredis 所带来的一些繁琐操作。

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

纠错
反馈