npm 包 connect-redis 使用教程

阅读时长 4 分钟读完

在使用 Node.js 作为后端开发语言时,Redis 通常被用来存储会话信息。而 connect-redis 就是一个非常流行的 npm 包,用于将 Express 应用程序中的会话存储到 Redis 中。

安装和配置

要使用 connect-redis,首先必须安装 Redis 数据库并启动 Redis 服务。然后用 npm 安装 connect-redis:

接下来,在应用程序中,将 connect-redis 模块导入并创建一个 Redis 存储实例:

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

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

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

这里,我们将 connect-redis 传递给 express-sessionstore 选项中,以便将会话数据存储到 Redis 中。可以通过传递选项对象来配置存储:

  • host:Redis 服务器的主机地址,默认为 '127.0.0.1'
  • port:Redis 服务器的端口号,默认为 6379
  • db:Redis 数据库的编号,默认为 0
  • pass:Redis 服务器的认证密码,默认为 null
  • prefix:所有存储的键名前缀,默认为 'sess:'

示例

以下示例演示了如何使用 connect-redis 在 Express 应用程序中存储和读取会话数据:

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

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

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

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

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

在上面的示例中,我们定义了一个路由,它将自增访问计数器存储在会话对象中。如果会话已存在,则将其值加一并在响应中输出;否则,将计数器初始化为 1 并发送欢迎消息。

当浏览器第一次请求该路由时,会话将被创建并设置过期时间。以后的每个请求都会自动更新会话的过期时间,因此会话数据在 Redis 中保持不变。

总结

通过使用 connect-redis,我们可以将 Express 会话数据存储到 Redis 中,从而获得更好的性能和可伸缩性。同时,该模块还提供了许多配置选项,使其适合各种使用场景。

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

纠错
反馈